Browse Source

Refine build on platform without TCP_FASTOPEN

pull/1813/merge
Max Lv 7 years ago
parent
commit
aebb79c222
3 changed files with 10 additions and 7 deletions
  1. 7
      src/local.c
  2. 3
      src/redir.c
  3. 7
      src/server.c

7
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

3
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)

7
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");

Loading…
Cancel
Save