diff options
Diffstat (limited to 'networking/udhcp/socket.c')
-rw-r--r-- | networking/udhcp/socket.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/networking/udhcp/socket.c b/networking/udhcp/socket.c index d294fb259..be5985f88 100644 --- a/networking/udhcp/socket.c +++ b/networking/udhcp/socket.c | |||
@@ -43,7 +43,7 @@ int read_interface(const char *interface, int *ifindex, uint32_t *addr, uint8_t | |||
43 | struct ifreq ifr; | 43 | struct ifreq ifr; |
44 | struct sockaddr_in *our_ip; | 44 | struct sockaddr_in *our_ip; |
45 | 45 | ||
46 | memset(&ifr, 0, sizeof(struct ifreq)); | 46 | memset(&ifr, 0, sizeof(ifr)); |
47 | fd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); | 47 | fd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); |
48 | if (fd < 0) { | 48 | if (fd < 0) { |
49 | bb_perror_msg("socket failed"); | 49 | bb_perror_msg("socket failed"); |
@@ -54,7 +54,8 @@ int read_interface(const char *interface, int *ifindex, uint32_t *addr, uint8_t | |||
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(fd, SIOCGIFADDR, &ifr) != 0) { |
57 | bb_perror_msg("SIOCGIFADDR failed, is the interface up and configured?"); | 57 | bb_perror_msg("SIOCGIFADDR failed (is interface %s " |
58 | "up and configured?)", interface); | ||
58 | close(fd); | 59 | close(fd); |
59 | return -1; | 60 | return -1; |
60 | } | 61 | } |
@@ -117,7 +118,7 @@ int listen_socket(uint32_t ip, int port, const char *inf) | |||
117 | return -1; | 118 | return -1; |
118 | } | 119 | } |
119 | 120 | ||
120 | if (bind(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr)) == -1) { | 121 | if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) == -1) { |
121 | close(fd); | 122 | close(fd); |
122 | return -1; | 123 | return -1; |
123 | } | 124 | } |