diff options
Diffstat (limited to 'server/red_tunnel_worker.c')
-rw-r--r-- | server/red_tunnel_worker.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c index 0366290e..c990bd17 100644 --- a/server/red_tunnel_worker.c +++ b/server/red_tunnel_worker.c @@ -3335,20 +3335,21 @@ static int tunnel_channel_config_socket(RedChannel *channel) { int flags; int delay_val; + RedsStream *stream = red_channel_get_stream(channel); - if ((flags = fcntl(channel->stream->socket, F_GETFL)) == -1) { + if ((flags = fcntl(stream->socket, F_GETFL)) == -1) { red_printf("accept failed, %s", strerror(errno)); // can't we just use red_error? return FALSE; } - if (fcntl(channel->stream->socket, F_SETFL, flags | O_NONBLOCK) == -1) { + if (fcntl(stream->socket, F_SETFL, flags | O_NONBLOCK) == -1) { red_printf("accept failed, %s", strerror(errno)); return FALSE; } delay_val = 1; - if (setsockopt(channel->stream->socket, IPPROTO_TCP, TCP_NODELAY, &delay_val, + if (setsockopt(stream->socket, IPPROTO_TCP, TCP_NODELAY, &delay_val, sizeof(delay_val)) == -1) { red_printf("setsockopt failed, %s", strerror(errno)); } |