diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-22 23:22:06 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-22 23:22:06 +0000 |
commit | 48237b0c88343154d58854020c3a9c8b07c61b10 (patch) | |
tree | b36bc84f22dd797b45c8d665e50e2f6c690e1370 /libbb/xconnect.c | |
parent | b40bdb383a6b7a7f0fd36d0b1cc24deb42cd5f0d (diff) | |
download | busybox-w32-48237b0c88343154d58854020c3a9c8b07c61b10.tar.gz busybox-w32-48237b0c88343154d58854020c3a9c8b07c61b10.tar.bz2 busybox-w32-48237b0c88343154d58854020c3a9c8b07c61b10.zip |
introduce setsockopt_reuseaddr(int fd), setsockopt_broadcast(int fd),
use them where appropriate. 200 bytes saved
Diffstat (limited to 'libbb/xconnect.c')
-rw-r--r-- | libbb/xconnect.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libbb/xconnect.c b/libbb/xconnect.c index 9f95e38f8..b85648007 100644 --- a/libbb/xconnect.c +++ b/libbb/xconnect.c | |||
@@ -67,6 +67,16 @@ int xconnect_tcp_v4(struct sockaddr_in *s_addr) | |||
67 | return s; | 67 | return s; |
68 | } | 68 | } |
69 | 69 | ||
70 | static const int one = 1; | ||
71 | int setsockopt_reuseaddr(int fd) | ||
72 | { | ||
73 | return setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)); | ||
74 | } | ||
75 | int setsockopt_broadcast(int fd) | ||
76 | { | ||
77 | return setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &one, sizeof(one)); | ||
78 | } | ||
79 | |||
70 | int dotted2sockaddr(const char *dotted, struct sockaddr* sp, int socklen) | 80 | int dotted2sockaddr(const char *dotted, struct sockaddr* sp, int socklen) |
71 | { | 81 | { |
72 | union { | 82 | union { |
@@ -116,7 +126,6 @@ int xsocket_stream_ip4or6(sa_family_t *fp) | |||
116 | 126 | ||
117 | int create_and_bind_socket_ip4or6(const char *hostaddr, int port) | 127 | int create_and_bind_socket_ip4or6(const char *hostaddr, int port) |
118 | { | 128 | { |
119 | static const int on = 1; | ||
120 | int fd; | 129 | int fd; |
121 | sockaddr_inet sa; | 130 | sockaddr_inet sa; |
122 | 131 | ||
@@ -128,7 +137,7 @@ int create_and_bind_socket_ip4or6(const char *hostaddr, int port) | |||
128 | fd = xsocket(sa.sa.sa_family, SOCK_STREAM, 0); | 137 | fd = xsocket(sa.sa.sa_family, SOCK_STREAM, 0); |
129 | } else | 138 | } else |
130 | fd = xsocket_stream_ip4or6(&sa.sa.sa_family); | 139 | fd = xsocket_stream_ip4or6(&sa.sa.sa_family); |
131 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); | 140 | setsockopt_reuseaddr(fd); |
132 | 141 | ||
133 | /* if (port >= 0) { */ | 142 | /* if (port >= 0) { */ |
134 | #if ENABLE_FEATURE_IPV6 | 143 | #if ENABLE_FEATURE_IPV6 |