friendly ping ---------- Forwarded message ---------- From: Vito Mulè <[email protected]> Date: 16 May 2016 at 18:16 Subject: Fwd: bug 8926 - Arping dropping leading 0 from mac address To: [email protected]
Hello, not sure if this is necessary since I've opened the bug already, apologies in case it's not. Bug link: https://bugs.busybox.net/show_bug.cgi?id=8926 Not sure if this is intende but busybox arping is not consistent with arping on linux, printing MAC addressed. root@agent4:/home/vmule# arping 192.168.1.159 ARPING 192.168.1.159 60 bytes from 08:00:27:86:47:9d (192.168.1.159): index=0 time=1.002 sec and this is busybox arping root@agent4:/home/vmule# busybox arping 192.168.1.159 ARPING to 192.168.1.159 from 192.168.1.157 via eth0 Unicast reply from 192.168.1.159 [8:0:27:86:47:9d] 0.314ms I wrote a small patch to fix it: diff --git a/networking/arping.c b/networking/arping.c index 6b0de4d..2b22451 100644 --- a/networking/arping.c +++ b/networking/arping.c @@ -230,12 +230,15 @@ static void recv_pack(unsigned char *buf, int len, struct sockaddr_ll *FROM) } if (!(option_mask32 & QUIET)) { int s_printed = 0; + struct ether_addr* mac = (struct ether_addr *) p; - printf("%scast re%s from %s [%s]", + printf("%scast re%s from %s [%02x:%02x:%02x:%02x:%02x:%02x] ", FROM->sll_pkttype == PACKET_HOST ? "Uni" : "Broad", ah->ar_op == htons(ARPOP_REPLY) ? "ply" : "quest", inet_ntoa(src_ip), - ether_ntoa((struct ether_addr *) p)); + mac->ether_addr_octet[0], mac->ether_addr_octet[1], + mac->ether_addr_octet[2], mac->ether_addr_octet[3], + mac->ether_addr_octet[4], mac->ether_addr_octet[5]); if (dst_ip.s_addr != src.s_addr) { printf("for %s ", inet_ntoa(dst_ip)); s_printed = 1; @@ -243,8 +246,11 @@ static void recv_pack(unsigned char *buf, int len, struct sockaddr_ll *FROM) if (memcmp(p + ah->ar_hln + 4, me.sll_addr, ah->ar_hln)) { if (!s_printed) printf("for "); - printf("[%s]", - ether_ntoa((struct ether_addr *) p + ah->ar_hln + 4)); + struct ether_addr* mac2 = mac + ah->ar_hln + 4; + printf("[%02x:%02x:%02x:%02x:%02x:%02x]", + mac2->ether_addr_octet[0], mac2->ether_addr_octet[1], + mac2->ether_addr_octet[2], mac2->ether_addr_octet[3], + mac2->ether_addr_octet[4], mac2->ether_addr_octet[5]); } if (last) { Ideas? Cheers
_______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
