From: Shankara Pailoor Date: Sun, 13 Jan 2019 23:34:04 +0000 (-0800) Subject: net: print mac address consistently X-Git-Tag: v5.0~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e48eb511fe3dd1cda289c1201f921900150eef7;p=strace net: print mac address consistently * net.c (print_packet_mreq): Call PRINT_FIELD_MAC_SZ instead of custom print. * tests/net-packet_mreq.c (test_packet_mreq): Update expected output. Co-Authored-by: Dmitry V. Levin --- diff --git a/net.c b/net.c index 2d2355c7..803da54c 100644 --- a/net.c +++ b/net.c @@ -953,17 +953,13 @@ print_packet_mreq(struct tcb *const tcp, const kernel_ulong_t addr, const int le umove(tcp, addr, &mreq) < 0) { printaddr(addr); } else { - unsigned int i; - PRINT_FIELD_IFINDEX("{", mreq, mr_ifindex); PRINT_FIELD_XVAL(", ", mreq, mr_type, packet_mreq_type, "PACKET_MR_???"); PRINT_FIELD_U(", ", mreq, mr_alen); - tprints(", mr_address="); - if (mreq.mr_alen > ARRAY_SIZE(mreq.mr_address)) - mreq.mr_alen = ARRAY_SIZE(mreq.mr_address); - for (i = 0; i < mreq.mr_alen; ++i) - tprintf("%02x", mreq.mr_address[i]); + PRINT_FIELD_MAC_SZ(", ", mreq, mr_address, + (mreq.mr_alen > sizeof(mreq.mr_address) + ? sizeof(mreq.mr_address) : mreq.mr_alen)); tprints("}"); } } diff --git a/tests/net-packet_mreq.c b/tests/net-packet_mreq.c index 16c42e39..8059ff90 100644 --- a/tests/net-packet_mreq.c +++ b/tests/net-packet_mreq.c @@ -38,9 +38,8 @@ test_packet_mreq(const int optname, const char *const optname_str) printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d," " mr_type=%#x /* PACKET_MR_??? */, mr_alen=%d, mr_address=", optname_str, pmreq->mr_ifindex, pmreq->mr_type, pmreq->mr_alen); - for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++) { - printf("%02x", pmreq->mr_address[i]); - } + for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++) + printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]); printf("}, %d) = %s\n", len, errstr); /* setsockopt with mr_type unknown and mr_alen > sizeof(mr_address) */ @@ -49,9 +48,8 @@ test_packet_mreq(const int optname, const char *const optname_str) printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d," " mr_type=%#x /* PACKET_MR_??? */, mr_alen=%d, mr_address=", optname_str, pmreq->mr_ifindex, pmreq->mr_type, pmreq->mr_alen); - for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++) { - printf("%02x", pmreq->mr_address[i]); - } + for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++) + printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]); printf("}, %d) = %s\n", len, errstr); /* setsockopt with mr_type unknown and mr_alen < sizeof(mr_address) */ @@ -60,9 +58,8 @@ test_packet_mreq(const int optname, const char *const optname_str) printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d," " mr_type=%#x /* PACKET_MR_??? */, mr_alen=%d, mr_address=", optname_str, pmreq->mr_ifindex, pmreq->mr_type, pmreq->mr_alen); - for (unsigned int i = 0; i < pmreq->mr_alen; i++) { - printf("%02x", pmreq->mr_address[i]); - } + for (unsigned int i = 0; i < pmreq->mr_alen; i++) + printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]); printf("}, %d) = %s\n", len, errstr); /* setsockopt with valid mr_type */ @@ -85,9 +82,8 @@ test_packet_mreq(const int optname, const char *const optname_str) printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d," " mr_type=%s, mr_alen=%d, mr_address=", optname_str, pmreq->mr_ifindex, a[i].type_str, pmreq->mr_alen); - for (unsigned int i = 0; i < pmreq->mr_alen; i++) { - printf("%02x", pmreq->mr_address[i]); - } + for (unsigned int i = 0; i < pmreq->mr_alen; i++) + printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]); printf("}, %d) = %s\n", len, errstr); }