summaryrefslogtreecommitdiff
path: root/socket.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2008-04-15 08:34:17 -0700
committerWayne Davison <wayned@samba.org>2008-04-15 08:34:17 -0700
commit1c3e6e8b2611f85cdf3ada054ef2c419ecaf399c (patch)
tree84ee2cdda5b84046e3fb853cdc44e984e4a0346f /socket.c
parentf2681d42ff564ec2d000383ee5c5f43cc3f283d8 (diff)
downloadrsync-1c3e6e8b2611f85cdf3ada054ef2c419ecaf399c.tar.gz
rsync-1c3e6e8b2611f85cdf3ada054ef2c419ecaf399c.tar.bz2
rsync-1c3e6e8b2611f85cdf3ada054ef2c419ecaf399c.zip
Moved the setting of the socket options before the connect().
Diffstat (limited to 'socket.c')
-rw-r--r--socket.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/socket.c b/socket.c
index 65ee61aa..8d4a89db 100644
--- a/socket.c
+++ b/socket.c
@@ -31,6 +31,7 @@
#include <netinet/tcp.h>
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) {