diff --git a/src/local.c b/src/local.c index 5bf12e6e..71a55e7e 100644 --- a/src/local.c +++ b/src/local.c @@ -369,8 +369,9 @@ 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 { + int s; #if defined(MSG_FASTOPEN) && !defined(TCP_FASTOPEN_CONNECT) - int s = sendto(remote->fd, remote->buf->data, remote->buf->len, MSG_FASTOPEN, + 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) @@ -380,7 +381,7 @@ server_recv_cb(EV_P_ ev_io *w, int revents) endpoints.sae_dstaddr = (struct sockaddr *)&(remote->addr); endpoints.sae_dstaddrlen = remote->addr_len; - int s = connectx(remote->fd, &endpoints, SAE_ASSOCID_ANY, + s = connectx(remote->fd, &endpoints, SAE_ASSOCID_ANY, CONNECT_RESUME_ON_READ_WRITE | CONNECT_DATA_IDEMPOTENT, NULL, 0, NULL, NULL); #elif defined(TCP_FASTOPEN_CONNECT) @@ -388,7 +389,7 @@ server_recv_cb(EV_P_ ev_io *w, int revents) if(setsockopt(remote->fd, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, (void *)&optval, sizeof(optval)) < 0) FATAL("failed to set TCP_FASTOPEN_CONNECT"); - int s = connect(remote->fd, (struct sockaddr *)&(remote->addr), remote->addr_len); + s = connect(remote->fd, (struct sockaddr *)&(remote->addr), remote->addr_len); #else FATAL("fast open is not enabled in this build"); #endif diff --git a/src/redir.c b/src/redir.c index 28a70c36..b1bebca0 100644 --- a/src/redir.c +++ b/src/redir.c @@ -552,7 +552,8 @@ remote_send_cb(EV_P_ ev_io *w, int revents) return; } else { // has data to send - ssize_t s; + int s; + if (remote->addr != NULL) { #if defined(TCP_FASTOPEN_CONNECT) diff --git a/src/server.c b/src/server.c index 8e4ebc50..c80bf80e 100644 --- a/src/server.c +++ b/src/server.c @@ -508,8 +508,9 @@ connect_to_remote(EV_P_ struct addrinfo *res, if (fast_open) { + int s; #if defined(MSG_FASTOPEN) && !defined(TCP_FASTOPEN_CONNECT) - ssize_t s = sendto(sockfd, server->buf->data, server->buf->len, + s = sendto(sockfd, server->buf->data, server->buf->len, MSG_FASTOPEN, res->ai_addr, res->ai_addrlen); #else #if defined(TCP_FASTOPEN_CONNECT) @@ -517,7 +518,7 @@ connect_to_remote(EV_P_ struct addrinfo *res, if(setsockopt(sockfd, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, (void *)&optval, sizeof(optval)) < 0) FATAL("failed to set TCP_FASTOPEN_CONNECT"); - int s = connect(sockfd, res->ai_addr, res->ai_addrlen); + s = connect(sockfd, res->ai_addr, res->ai_addrlen); #elif defined(CONNECT_DATA_IDEMPOTENT) ((struct sockaddr_in *)(res->ai_addr))->sin_len = sizeof(struct sockaddr_in); sa_endpoints_t endpoints; @@ -525,7 +526,7 @@ connect_to_remote(EV_P_ struct addrinfo *res, endpoints.sae_dstaddr = res->ai_addr; endpoints.sae_dstaddrlen = res->ai_addrlen; - int s = connectx(sockfd, &endpoints, SAE_ASSOCID_ANY, CONNECT_DATA_IDEMPOTENT, + s = connectx(sockfd, &endpoints, SAE_ASSOCID_ANY, CONNECT_DATA_IDEMPOTENT, NULL, 0, NULL, NULL); #else FATAL("fast open is not enabled in this build");