diff options
Diffstat (limited to 'networking/udhcp/socket.c')
-rw-r--r-- | networking/udhcp/socket.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/networking/udhcp/socket.c b/networking/udhcp/socket.c index be5985f88..21a058545 100644 --- a/networking/udhcp/socket.c +++ b/networking/udhcp/socket.c | |||
@@ -53,9 +53,9 @@ int read_interface(const char *interface, int *ifindex, uint32_t *addr, uint8_t | |||
53 | ifr.ifr_addr.sa_family = AF_INET; | 53 | ifr.ifr_addr.sa_family = AF_INET; |
54 | strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)); | 54 | strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)); |
55 | if (addr) { | 55 | if (addr) { |
56 | if (ioctl(fd, SIOCGIFADDR, &ifr) != 0) { | 56 | if (ioctl_or_perror(fd, SIOCGIFADDR, &ifr, |
57 | bb_perror_msg("SIOCGIFADDR failed (is interface %s " | 57 | "is interface %s up and configured?", interface) |
58 | "up and configured?)", interface); | 58 | ) { |
59 | close(fd); | 59 | close(fd); |
60 | return -1; | 60 | return -1; |
61 | } | 61 | } |
@@ -65,8 +65,7 @@ int read_interface(const char *interface, int *ifindex, uint32_t *addr, uint8_t | |||
65 | } | 65 | } |
66 | 66 | ||
67 | if (ifindex) { | 67 | if (ifindex) { |
68 | if (ioctl(fd, SIOCGIFINDEX, &ifr) != 0) { | 68 | if (ioctl_or_warn(fd, SIOCGIFINDEX, &ifr) != 0) { |
69 | bb_perror_msg("SIOCGIFINDEX failed"); | ||
70 | close(fd); | 69 | close(fd); |
71 | return -1; | 70 | return -1; |
72 | } | 71 | } |
@@ -75,8 +74,7 @@ int read_interface(const char *interface, int *ifindex, uint32_t *addr, uint8_t | |||
75 | } | 74 | } |
76 | 75 | ||
77 | if (arp) { | 76 | if (arp) { |
78 | if (ioctl(fd, SIOCGIFHWADDR, &ifr) != 0) { | 77 | if (ioctl_or_warn(fd, SIOCGIFHWADDR, &ifr) != 0) { |
79 | bb_perror_msg("SIOCGIFHWADDR failed"); | ||
80 | close(fd); | 78 | close(fd); |
81 | return -1; | 79 | return -1; |
82 | } | 80 | } |