aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/arpping.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2006-11-22 23:22:06 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2006-11-22 23:22:06 +0000
commit48237b0c88343154d58854020c3a9c8b07c61b10 (patch)
treeb36bc84f22dd797b45c8d665e50e2f6c690e1370 /networking/udhcp/arpping.c
parentb40bdb383a6b7a7f0fd36d0b1cc24deb42cd5f0d (diff)
downloadbusybox-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/arpping.c')
-rw-r--r--networking/udhcp/arpping.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/networking/udhcp/arpping.c b/networking/udhcp/arpping.c
index 471e36d62..9c8b9c562 100644
--- a/networking/udhcp/arpping.c
+++ b/networking/udhcp/arpping.c
@@ -44,9 +44,7 @@ struct arpMsg {
44/* FIXME: match response against chaddr */ 44/* FIXME: match response against chaddr */
45int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *mac, char *interface) 45int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *mac, char *interface)
46{ 46{
47
48 int timeout = 2; 47 int timeout = 2;
49 int optval = 1;
50 int s; /* socket */ 48 int s; /* socket */
51 int rv = 1; /* return value */ 49 int rv = 1; /* return value */
52 struct sockaddr addr; /* for interface name */ 50 struct sockaddr addr; /* for interface name */
@@ -56,12 +54,13 @@ int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *mac, char *interface)
56 time_t prevTime; 54 time_t prevTime;
57 55
58 56
59 if ((s = socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_ARP))) == -1) { 57 s = socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_ARP));
58 if (s == -1) {
60 bb_perror_msg(bb_msg_can_not_create_raw_socket); 59 bb_perror_msg(bb_msg_can_not_create_raw_socket);
61 return -1; 60 return -1;
62 } 61 }
63 62
64 if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(optval)) == -1) { 63 if (setsockopt_broadcast(s) == -1) {
65 bb_perror_msg("cannot setsocketopt on raw socket"); 64 bb_perror_msg("cannot setsocketopt on raw socket");
66 close(s); 65 close(s);
67 return -1; 66 return -1;