diff options
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 | } |