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 /networking/udhcp/socket.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 'networking/udhcp/socket.c')
-rw-r--r-- | networking/udhcp/socket.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/networking/udhcp/socket.c b/networking/udhcp/socket.c index c19131d65..b27dca300 100644 --- a/networking/udhcp/socket.c +++ b/networking/udhcp/socket.c | |||
@@ -93,7 +93,6 @@ int listen_socket(uint32_t ip, int port, char *inf) | |||
93 | struct ifreq interface; | 93 | struct ifreq interface; |
94 | int fd; | 94 | int fd; |
95 | struct sockaddr_in addr; | 95 | struct sockaddr_in addr; |
96 | int n = 1; | ||
97 | 96 | ||
98 | DEBUG("Opening listen socket on 0x%08x:%d %s", ip, port, inf); | 97 | DEBUG("Opening listen socket on 0x%08x:%d %s", ip, port, inf); |
99 | fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); | 98 | fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); |
@@ -107,17 +106,17 @@ int listen_socket(uint32_t ip, int port, char *inf) | |||
107 | addr.sin_port = htons(port); | 106 | addr.sin_port = htons(port); |
108 | addr.sin_addr.s_addr = ip; | 107 | addr.sin_addr.s_addr = ip; |
109 | 108 | ||
110 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *) &n, sizeof(n)) == -1) { | 109 | if (setsockopt_reuseaddr(fd) == -1) { |
111 | close(fd); | 110 | close(fd); |
112 | return -1; | 111 | return -1; |
113 | } | 112 | } |
114 | if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, (char *) &n, sizeof(n)) == -1) { | 113 | if (setsockopt_broadcast(fd) == -1) { |
115 | close(fd); | 114 | close(fd); |
116 | return -1; | 115 | return -1; |
117 | } | 116 | } |
118 | 117 | ||
119 | strncpy(interface.ifr_name, inf, IFNAMSIZ); | 118 | strncpy(interface.ifr_name, inf, IFNAMSIZ); |
120 | if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE,(char *)&interface, sizeof(interface)) < 0) { | 119 | if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, (char *)&interface, sizeof(interface)) < 0) { |
121 | close(fd); | 120 | close(fd); |
122 | return -1; | 121 | return -1; |
123 | } | 122 | } |