summaryrefslogtreecommitdiff
path: root/networking/udhcp
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2006-12-19 16:31:09 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2006-12-19 16:31:09 +0000
commit28fbd69bf8a0482de2816cc189fdd0e9ed551997 (patch)
treec2d7e7b1e0b9b87748cb74b52dd3599d5500feca /networking/udhcp
parent359d7ca0e70d4acfc3b7e792bf28f5b5581af8ff (diff)
downloadbusybox-w32-28fbd69bf8a0482de2816cc189fdd0e9ed551997.tar.gz
busybox-w32-28fbd69bf8a0482de2816cc189fdd0e9ed551997.tar.bz2
busybox-w32-28fbd69bf8a0482de2816cc189fdd0e9ed551997.zip
- use xlisten/xsocket some more. Saves .25 kB
Diffstat (limited to 'networking/udhcp')
-rw-r--r--networking/udhcp/clientsocket.c12
-rw-r--r--networking/udhcp/dhcpc.c4
-rw-r--r--networking/udhcp/dhcpd.c4
-rw-r--r--networking/udhcp/dhcprelay.c4
-rw-r--r--networking/udhcp/socket.c6
5 files changed, 3 insertions, 27 deletions
diff --git a/networking/udhcp/clientsocket.c b/networking/udhcp/clientsocket.c
index b8803f04e..541f883b5 100644
--- a/networking/udhcp/clientsocket.c
+++ b/networking/udhcp/clientsocket.c
@@ -40,20 +40,12 @@ int raw_socket(int ifindex)
40 struct sockaddr_ll sock; 40 struct sockaddr_ll sock;
41 41
42 DEBUG("Opening raw socket on ifindex %d", ifindex); 42 DEBUG("Opening raw socket on ifindex %d", ifindex);
43 fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)); 43 fd = xsocket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
44 if (fd < 0) {
45 bb_perror_msg("socket");
46 return -1;
47 }
48 44
49 sock.sll_family = AF_PACKET; 45 sock.sll_family = AF_PACKET;
50 sock.sll_protocol = htons(ETH_P_IP); 46 sock.sll_protocol = htons(ETH_P_IP);
51 sock.sll_ifindex = ifindex; 47 sock.sll_ifindex = ifindex;
52 if (bind(fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) { 48 xbind(fd, (struct sockaddr *) &sock, sizeof(sock));
53 bb_perror_msg("bind");
54 close(fd);
55 return -1;
56 }
57 49
58 return fd; 50 return fd;
59} 51}
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 71315ff0a..e042da89a 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -278,10 +278,6 @@ int udhcpc_main(int argc, char *argv[])
278 fd = listen_socket(INADDR_ANY, CLIENT_PORT, client_config.interface); 278 fd = listen_socket(INADDR_ANY, CLIENT_PORT, client_config.interface);
279 else 279 else
280 fd = raw_socket(client_config.ifindex); 280 fd = raw_socket(client_config.ifindex);
281 if (fd < 0) {
282 bb_perror_msg("FATAL: cannot listen on socket");
283 return 0;
284 }
285 } 281 }
286 max_fd = udhcp_sp_fd_set(&rfds, fd); 282 max_fd = udhcp_sp_fd_set(&rfds, fd);
287 283
diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c
index 74380367f..7d0b8fad1 100644
--- a/networking/udhcp/dhcpd.c
+++ b/networking/udhcp/dhcpd.c
@@ -70,10 +70,6 @@ int udhcpd_main(int argc, char *argv[])
70 70
71 if (server_socket < 0) { 71 if (server_socket < 0) {
72 server_socket = listen_socket(INADDR_ANY, SERVER_PORT, server_config.interface); 72 server_socket = listen_socket(INADDR_ANY, SERVER_PORT, server_config.interface);
73 if (server_socket < 0) {
74 bb_perror_msg("FATAL: cannot create server socket");
75 return 2;
76 }
77 } 73 }
78 74
79 max_sock = udhcp_sp_fd_set(&rfds, server_socket); 75 max_sock = udhcp_sp_fd_set(&rfds, server_socket);
diff --git a/networking/udhcp/dhcprelay.c b/networking/udhcp/dhcprelay.c
index e3a816886..052739400 100644
--- a/networking/udhcp/dhcprelay.c
+++ b/networking/udhcp/dhcprelay.c
@@ -169,7 +169,6 @@ static int init_sockets(char **client, int num_clients,
169 169
170 /* talk to real server on bootps */ 170 /* talk to real server on bootps */
171 fds[0] = listen_socket(htonl(INADDR_ANY), 67, server); 171 fds[0] = listen_socket(htonl(INADDR_ANY), 67, server);
172 if (fds[0] < 0) return -1;
173 *max_socket = fds[0]; 172 *max_socket = fds[0];
174 173
175 /* array starts at 1 since server is 0 */ 174 /* array starts at 1 since server is 0 */
@@ -178,7 +177,6 @@ static int init_sockets(char **client, int num_clients,
178 for (i=1; i < num_clients; i++) { 177 for (i=1; i < num_clients; i++) {
179 /* listen for clients on bootps */ 178 /* listen for clients on bootps */
180 fds[i] = listen_socket(htonl(INADDR_ANY), 67, client[i-1]); 179 fds[i] = listen_socket(htonl(INADDR_ANY), 67, client[i-1]);
181 if (fds[i] < 0) return -1;
182 if (fds[i] > *max_socket) *max_socket = fds[i]; 180 if (fds[i] > *max_socket) *max_socket = fds[i];
183 } 181 }
184 182
@@ -321,8 +319,6 @@ int dhcprelay_main(int argc, char **argv)
321 signal(SIGINT, dhcprelay_signal_handler); 319 signal(SIGINT, dhcprelay_signal_handler);
322 320
323 num_sockets = init_sockets(clients, num_sockets, argv[2], fds, &max_socket); 321 num_sockets = init_sockets(clients, num_sockets, argv[2], fds, &max_socket);
324 if (num_sockets == -1)
325 bb_perror_msg_and_die("init_sockets() failed");
326 322
327 if (read_interface(argv[2], NULL, &gw_ip, NULL) == -1) 323 if (read_interface(argv[2], NULL, &gw_ip, NULL) == -1)
328 return 1; 324 return 1;
diff --git a/networking/udhcp/socket.c b/networking/udhcp/socket.c
index 9ea200280..8138f5a86 100644
--- a/networking/udhcp/socket.c
+++ b/networking/udhcp/socket.c
@@ -95,11 +95,7 @@ int listen_socket(uint32_t ip, int port, char *inf)
95 struct sockaddr_in addr; 95 struct sockaddr_in addr;
96 96
97 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);
98 fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); 98 fd = xsocket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
99 if (fd < 0) {
100 bb_perror_msg("socket");
101 return -1;
102 }
103 99
104 memset(&addr, 0, sizeof(addr)); 100 memset(&addr, 0, sizeof(addr));
105 addr.sin_family = AF_INET; 101 addr.sin_family = AF_INET;