diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-02-04 16:18:58 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-02-04 16:18:58 +0100 |
commit | 06af569f447664526a76e527ea14ae059f5c19a9 (patch) | |
tree | 4aa31f79d817209daf0a798d327ecee07d3bc3de | |
parent | a8816dafc4b274b17c58df88cabdbf9e2b47f528 (diff) | |
download | busybox-w32-06af569f447664526a76e527ea14ae059f5c19a9.tar.gz busybox-w32-06af569f447664526a76e527ea14ae059f5c19a9.tar.bz2 busybox-w32-06af569f447664526a76e527ea14ae059f5c19a9.zip |
arp: code shrink
function old new delta
packed_usage 29257 29252 -5
arp_main 1487 1471 -16
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | networking/arp.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/networking/arp.c b/networking/arp.c index 201bb2aff..40d244116 100644 --- a/networking/arp.c +++ b/networking/arp.c | |||
@@ -22,12 +22,12 @@ | |||
22 | //usage:#define arp_full_usage "\n\n" | 22 | //usage:#define arp_full_usage "\n\n" |
23 | //usage: "Manipulate ARP cache\n" | 23 | //usage: "Manipulate ARP cache\n" |
24 | //usage: "\n -a Display (all) hosts" | 24 | //usage: "\n -a Display (all) hosts" |
25 | //usage: "\n -s Set new ARP entry" | 25 | //usage: "\n -d Delete ARP entry" |
26 | //usage: "\n -d Delete a specified entry" | 26 | //usage: "\n -s Set new entry" |
27 | //usage: "\n -v Verbose" | 27 | //usage: "\n -v Verbose" |
28 | //usage: "\n -n Don't resolve names" | 28 | //usage: "\n -n Don't resolve names" |
29 | //usage: "\n -i IF Network interface" | 29 | //usage: "\n -i IF Network interface" |
30 | //usage: "\n -D Read <hwaddr> from given device" | 30 | //usage: "\n -D Read HWADDR from IFACE" |
31 | //usage: "\n -A,-p AF Protocol family" | 31 | //usage: "\n -A,-p AF Protocol family" |
32 | //usage: "\n -H HWTYPE Hardware address type" | 32 | //usage: "\n -H HWTYPE Hardware address type" |
33 | 33 | ||
@@ -213,16 +213,15 @@ static int arp_del(char **args) | |||
213 | } | 213 | } |
214 | 214 | ||
215 | /* Get the hardware address to a specified interface name */ | 215 | /* Get the hardware address to a specified interface name */ |
216 | static void arp_getdevhw(char *ifname, struct sockaddr *sa, | 216 | static void arp_getdevhw(char *ifname, struct sockaddr *sa) |
217 | const struct hwtype *hwt) | ||
218 | { | 217 | { |
219 | struct ifreq ifr; | 218 | struct ifreq ifr; |
220 | const struct hwtype *xhw; | 219 | const struct hwtype *xhw; |
221 | 220 | ||
222 | strcpy(ifr.ifr_name, ifname); | 221 | strcpy(ifr.ifr_name, ifname); |
223 | ioctl_or_perror_and_die(sockfd, SIOCGIFHWADDR, &ifr, | 222 | ioctl_or_perror_and_die(sockfd, SIOCGIFHWADDR, &ifr, |
224 | "cant get HW-Address for '%s'", ifname); | 223 | "can't get HW-Address for '%s'", ifname); |
225 | if (hwt && (ifr.ifr_hwaddr.sa_family != hw->type)) { | 224 | if (hw_set && (ifr.ifr_hwaddr.sa_family != hw->type)) { |
226 | bb_error_msg_and_die("protocol type mismatch"); | 225 | bb_error_msg_and_die("protocol type mismatch"); |
227 | } | 226 | } |
228 | memcpy(sa, &(ifr.ifr_hwaddr), sizeof(struct sockaddr)); | 227 | memcpy(sa, &(ifr.ifr_hwaddr), sizeof(struct sockaddr)); |
@@ -233,8 +232,8 @@ static void arp_getdevhw(char *ifname, struct sockaddr *sa, | |||
233 | xhw = get_hwntype(-1); | 232 | xhw = get_hwntype(-1); |
234 | } | 233 | } |
235 | bb_error_msg("device '%s' has HW address %s '%s'", | 234 | bb_error_msg("device '%s' has HW address %s '%s'", |
236 | ifname, xhw->name, | 235 | ifname, xhw->name, |
237 | xhw->print((unsigned char *) &ifr.ifr_hwaddr.sa_data)); | 236 | xhw->print((unsigned char *) &ifr.ifr_hwaddr.sa_data)); |
238 | } | 237 | } |
239 | } | 238 | } |
240 | 239 | ||
@@ -261,7 +260,7 @@ static int arp_set(char **args) | |||
261 | bb_error_msg_and_die("need hardware address"); | 260 | bb_error_msg_and_die("need hardware address"); |
262 | } | 261 | } |
263 | if (option_mask32 & ARP_OPT_D) { | 262 | if (option_mask32 & ARP_OPT_D) { |
264 | arp_getdevhw(*args++, &req.arp_ha, hw_set ? hw : NULL); | 263 | arp_getdevhw(*args++, &req.arp_ha); |
265 | } else { | 264 | } else { |
266 | if (hw->input(*args++, &req.arp_ha) < 0) { | 265 | if (hw->input(*args++, &req.arp_ha) < 0) { |
267 | bb_error_msg_and_die("invalid hardware address"); | 266 | bb_error_msg_and_die("invalid hardware address"); |