Skip to content

Commit

Permalink
Merge branch 'fix-socket-buffer-handling'
Browse files Browse the repository at this point in the history
  • Loading branch information
notsure2 committed Dec 11, 2023
2 parents d4e2789 + 8be7a7c commit 438380c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 32 deletions.
16 changes: 8 additions & 8 deletions src/local.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,14 @@ create_and_bind(const char *addr, const char *port)
}
}

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);
if (s == 0) {
/* We managed to bind successfully! */
Expand Down Expand Up @@ -1406,14 +1414,6 @@ accept_cb(EV_P_ ev_io *w, int revents)
setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt));
#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));
}

server_t *server = new_server(serverfd);
server->listener = listener;

Expand Down
16 changes: 8 additions & 8 deletions src/redir.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,14 @@ create_and_bind(const char *addr, const char *port)
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);
if (s == 0) {
/* We managed to bind successfully! */
Expand Down Expand Up @@ -759,14 +767,6 @@ accept_cb(EV_P_ ev_io *w, int revents)
setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt));
#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;
struct sockaddr *remote_addr = listener->remote_addr[index];

Expand Down
16 changes: 8 additions & 8 deletions src/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,14 @@ create_and_bind(const char *host, const char *port, int mptcp)
}
}

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

// Enable out-of-tree mptcp
if (mptcp == 1) {
int i = 0;
Expand Down Expand Up @@ -1769,14 +1777,6 @@ accept_cb(EV_P_ ev_io *w, int revents)
setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt));
#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));
}

setnonblocking(serverfd);

server_t *server = new_server(serverfd, listener);
Expand Down
16 changes: 8 additions & 8 deletions src/tunnel.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,14 @@ create_and_bind(const char *addr, const char *port)
}
}

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);
if (s == 0) {
/* We managed to bind successfully! */
Expand Down Expand Up @@ -725,14 +733,6 @@ accept_cb(EV_P_ ev_io *w, int revents)
setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt));
#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;
struct sockaddr *remote_addr = listener->remote_addr[index];

Expand Down

0 comments on commit 438380c

Please sign in to comment.