]> granicus.if.org Git - strace/commitdiff
net: print mac address consistently
authorShankara Pailoor <shankarapailoor@gmail.com>
Sun, 13 Jan 2019 23:34:04 +0000 (15:34 -0800)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 17 Mar 2019 23:38:24 +0000 (23:38 +0000)
* 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 <ldv@altlinux.org>
net.c
tests/net-packet_mreq.c

diff --git a/net.c b/net.c
index 2d2355c7883e5d403689c763f59fa7cf2099ad17..803da54cf8ac1a85765f7875ef7d02a000183f0d 100644 (file)
--- 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("}");
        }
 }
index 16c42e39b346339a80cd73db0d953f98de5260b6..8059ff90af171054b6e13e7d41fbde45816c947e 100644 (file)
@@ -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);
        }