|
@ -201,6 +201,14 @@ create_and_bind(const char *addr, const char *port) |
|
|
LOGI("tcp tproxy mode enabled"); |
|
|
LOGI("tcp tproxy mode enabled"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (tcp_incoming_sndbuf > 0) { |
|
|
|
|
|
setsockopt(listen_sock, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (tcp_incoming_rcvbuf > 0) { |
|
|
|
|
|
setsockopt(listen_sock, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); |
|
|
s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); |
|
|
if (s == 0) { |
|
|
if (s == 0) { |
|
|
/* We managed to bind successfully! */ |
|
|
/* We managed to bind successfully! */ |
|
@ -759,14 +767,6 @@ accept_cb(EV_P_ ev_io *w, int revents) |
|
|
setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); |
|
|
setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
if (tcp_incoming_sndbuf > 0) { |
|
|
|
|
|
setsockopt(serverfd, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (tcp_incoming_rcvbuf > 0) { |
|
|
|
|
|
setsockopt(serverfd, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int index = rand() % listener->remote_num; |
|
|
int index = rand() % listener->remote_num; |
|
|
struct sockaddr *remote_addr = listener->remote_addr[index]; |
|
|
struct sockaddr *remote_addr = listener->remote_addr[index]; |
|
|
|
|
|
|
|
|