@ -273,6 +273,7 @@ int setfastopen(int fd)
# else
# else
int opt = 5 ;
int opt = 5 ;
# endif
# endif
errno = 0 ;
s = setsockopt ( fd , IPPROTO_TCP , TCP_FASTOPEN , & opt , sizeof ( opt ) ) ;
s = setsockopt ( fd , IPPROTO_TCP , TCP_FASTOPEN , & opt , sizeof ( opt ) ) ;
if ( s = = - 1 ) {
if ( s = = - 1 ) {
if ( errno = = EPROTONOSUPPORT | | errno = = ENOPROTOOPT ) {
if ( errno = = EPROTONOSUPPORT | | errno = = ENOPROTOOPT ) {
@ -452,6 +453,7 @@ static remote_t *connect_to_remote(struct addrinfo *res,
s = len ;
s = len ;
}
}
# else
# else
errno = 0 ;
ssize_t s = sendto ( sockfd , server - > buf - > array + server - > buf - > idx ,
ssize_t s = sendto ( sockfd , server - > buf - > array + server - > buf - > idx ,
server - > buf - > len , MSG_FASTOPEN , res - > ai_addr ,
server - > buf - > len , MSG_FASTOPEN , res - > ai_addr ,
res - > ai_addrlen ) ;
res - > ai_addrlen ) ;
@ -501,6 +503,7 @@ static void server_recv_cb(EV_P_ ev_io *w, int revents)
len = 0 ;
len = 0 ;
}
}
errno = 0 ;
ssize_t r = recv ( server - > fd , buf - > array + len , BUF_SIZE - len , 0 ) ;
ssize_t r = recv ( server - > fd , buf - > array + len , BUF_SIZE - len , 0 ) ;
if ( r = = 0 ) {
if ( r = = 0 ) {
@ -563,6 +566,7 @@ static void server_recv_cb(EV_P_ ev_io *w, int revents)
close_and_free_remote ( EV_A_ remote ) ;
close_and_free_remote ( EV_A_ remote ) ;
return ;
return ;
}
}
errno = 0 ;
int s = send ( remote - > fd , remote - > buf - > array , remote - > buf - > len , 0 ) ;
int s = send ( remote - > fd , remote - > buf - > array , remote - > buf - > len , 0 ) ;
if ( s = = - 1 ) {
if ( s = = - 1 ) {
if ( errno = = EAGAIN | | errno = = EWOULDBLOCK ) {
if ( errno = = EAGAIN | | errno = = EWOULDBLOCK ) {
@ -833,6 +837,7 @@ static void server_send_cb(EV_P_ ev_io *w, int revents)
return ;
return ;
} else {
} else {
/ / has data to send
/ / has data to send
errno = 0 ;
ssize_t s = send ( server - > fd , server - > buf - > array + server - > buf - > idx ,
ssize_t s = send ( server - > fd , server - > buf - > array + server - > buf - > idx ,
server - > buf - > len , 0 ) ;
server - > buf - > len , 0 ) ;
if ( s < 0 ) {
if ( s < 0 ) {
@ -948,6 +953,7 @@ static void remote_recv_cb(EV_P_ ev_io *w, int revents)
ev_timer_again ( EV_A_ & server - > recv_ctx - > watcher ) ;
ev_timer_again ( EV_A_ & server - > recv_ctx - > watcher ) ;
errno = 0 ;
ssize_t r = recv ( remote - > fd , server - > buf - > array , BUF_SIZE , 0 ) ;
ssize_t r = recv ( remote - > fd , server - > buf - > array , BUF_SIZE , 0 ) ;
if ( r = = 0 ) {
if ( r = = 0 ) {
@ -983,6 +989,7 @@ static void remote_recv_cb(EV_P_ ev_io *w, int revents)
return ;
return ;
}
}
errno = 0 ;
int s = send ( server - > fd , server - > buf - > array , server - > buf - > len , 0 ) ;
int s = send ( server - > fd , server - > buf - > array , server - > buf - > len , 0 ) ;
if ( s = = - 1 ) {
if ( s = = - 1 ) {
@ -1055,6 +1062,7 @@ static void remote_send_cb(EV_P_ ev_io *w, int revents)
return ;
return ;
} else {
} else {
/ / has data to send
/ / has data to send
errno = 0 ;
ssize_t s = send ( remote - > fd , remote - > buf - > array + remote - > buf - > idx ,
ssize_t s = send ( remote - > fd , remote - > buf - > array + remote - > buf - > idx ,
remote - > buf - > len , 0 ) ;
remote - > buf - > len , 0 ) ;
if ( s = = - 1 ) {
if ( s = = - 1 ) {