diff options
Diffstat (limited to 'networking/udhcp/arpping.c')
-rw-r--r-- | networking/udhcp/arpping.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/networking/udhcp/arpping.c b/networking/udhcp/arpping.c index f78fd3fd8..615a91172 100644 --- a/networking/udhcp/arpping.c +++ b/networking/udhcp/arpping.c | |||
@@ -94,9 +94,11 @@ int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *mac, char *interface) | |||
94 | tm.tv_sec = timeout; | 94 | tm.tv_sec = timeout; |
95 | if (select(s + 1, &fdset, (fd_set *) NULL, (fd_set *) NULL, &tm) < 0) { | 95 | if (select(s + 1, &fdset, (fd_set *) NULL, (fd_set *) NULL, &tm) < 0) { |
96 | bb_perror_msg("error on ARPING request"); | 96 | bb_perror_msg("error on ARPING request"); |
97 | if (errno != EINTR) rv = 0; | 97 | if (errno != EINTR) |
98 | rv = 0; | ||
98 | } else if (FD_ISSET(s, &fdset)) { | 99 | } else if (FD_ISSET(s, &fdset)) { |
99 | if (recv(s, &arp, sizeof(arp), 0) < 0 ) rv = 0; | 100 | if (recv(s, &arp, sizeof(arp), 0) < 0) |
101 | rv = 0; | ||
100 | if (arp.operation == htons(ARPOP_REPLY) && | 102 | if (arp.operation == htons(ARPOP_REPLY) && |
101 | memcmp(arp.tHaddr, mac, 6) == 0 && | 103 | memcmp(arp.tHaddr, mac, 6) == 0 && |
102 | *((uint32_t *) arp.sInaddr) == yiaddr) { | 104 | *((uint32_t *) arp.sInaddr) == yiaddr) { |