From 1c3e6e8b2611f85cdf3ada054ef2c419ecaf399c Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 15 Apr 2008 08:34:17 -0700 Subject: [PATCH] Moved the setting of the socket options before the connect(). --- clientserver.c | 6 ------ socket.c | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/clientserver.c b/clientserver.c index 52913567..f78c61c3 100644 --- a/clientserver.c +++ b/clientserver.c @@ -121,8 +121,6 @@ int start_socket_client(char *host, int remote_argc, char *remote_argv[], if (fd == -1) exit_cleanup(RERR_SOCKETIO); - set_socket_options(fd, sockopts); - #ifdef ICONV_CONST setup_iconv(); #endif @@ -931,10 +929,6 @@ int start_daemon(int f_in, int f_out) if (!am_server) { set_socket_options(f_in, "SO_KEEPALIVE"); - if (sockopts) - set_socket_options(f_in, sockopts); - else - set_socket_options(f_in, lp_socket_options()); set_nonblocking(f_in); } diff --git a/socket.c b/socket.c index 65ee61aa..8d4a89db 100644 --- a/socket.c +++ b/socket.c @@ -31,6 +31,7 @@ #include extern char *bind_address; +extern char *sockopts; extern int default_af_hint; extern int connect_timeout; @@ -272,6 +273,7 @@ int open_socket_out(char *host, int port, const char *bind_addr, alarm(connect_timeout); } + set_socket_options(s, sockopts); while (connect(s, res->ai_addr, res->ai_addrlen) < 0) { if (connect_timeout < 0) exit_cleanup(RERR_CONTIMEOUT); @@ -433,6 +435,10 @@ static int *open_socket_in(int type, int port, const char *bind_addr, setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof one); + if (sockopts) + set_socket_options(s, sockopts); + else + set_socket_options(s, lp_socket_options()); #ifdef IPV6_V6ONLY if (resp->ai_family == AF_INET6) { -- 2.34.1