diff --git a/src/local.c b/src/local.c index 2b49cdcb..e9ca4f88 100644 --- a/src/local.c +++ b/src/local.c @@ -371,7 +371,10 @@ server_recv_cb(EV_P_ ev_io *w, int revents) ev_io_start(EV_A_ & remote->send_ctx->io); ev_timer_start(EV_A_ & remote->send_ctx->watcher); } else { -#if !defined(MSG_FASTOPEN) +#if defined(MSG_FASTOPEN) && !defined(TCP_FASTOPEN_CONNECT) + int s = sendto(remote->fd, remote->buf->data, remote->buf->len, MSG_FASTOPEN, + (struct sockaddr *)&(remote->addr), remote->addr_len); +#else #if defined(CONNECT_DATA_IDEMPOTENT) ((struct sockaddr_in *)&(remote->addr))->sin_len = sizeof(struct sockaddr_in); sa_endpoints_t endpoints; @@ -393,9 +396,6 @@ server_recv_cb(EV_P_ ev_io *w, int revents) #endif if (s == 0) s = send(remote->fd, remote->buf->data, remote->buf->len, 0); -#else - int s = sendto(remote->fd, remote->buf->data, remote->buf->len, MSG_FASTOPEN, - (struct sockaddr *)&(remote->addr), remote->addr_len); #endif if (s == -1) { if (errno == CONNECT_IN_PROGRESS) { diff --git a/src/server.c b/src/server.c index 24ca2bb4..8e4ebc50 100644 --- a/src/server.c +++ b/src/server.c @@ -508,8 +508,10 @@ connect_to_remote(EV_P_ struct addrinfo *res, if (fast_open) { -#if !defined(MSG_FASTOPEN) - +#if defined(MSG_FASTOPEN) && !defined(TCP_FASTOPEN_CONNECT) + ssize_t s = sendto(sockfd, server->buf->data, server->buf->len, + MSG_FASTOPEN, res->ai_addr, res->ai_addrlen); +#else #if defined(TCP_FASTOPEN_CONNECT) int optval = 1; if(setsockopt(sockfd, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, @@ -530,9 +532,6 @@ connect_to_remote(EV_P_ struct addrinfo *res, #endif if (s == 0) s = send(sockfd, server->buf->data, server->buf->len, 0); -#else - ssize_t s = sendto(sockfd, server->buf->data, server->buf->len, - MSG_FASTOPEN, res->ai_addr, res->ai_addrlen); #endif if (s == -1) { if (errno == CONNECT_IN_PROGRESS) {