]> granicus.if.org Git - strace/commitdiff
Intorduce PRINT_FIELD_INET4_ADDR
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 9 Jul 2017 13:54:01 +0000 (13:54 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 9 Jul 2017 18:43:34 +0000 (18:43 +0000)
* print_fields.h (PRINT_FIELD_INET4_ADDR): New macro.
* msghdr.c (print_cmsg_ip_pktinfo): Use it instead of manual
tprintf statements.
* net.c (print_mreq): Likewise.
* sockaddr.c (print_sockaddr_data_in): Likewise.

msghdr.c
net.c
print_fields.h
sockaddr.c

index b95232d08e6ede06354d8e91855b7c8a79fbe0fd..9fcb1051d3141f59f1cc34941112040cce058033 100644 (file)
--- a/msghdr.c
+++ b/msghdr.c
@@ -124,10 +124,9 @@ print_cmsg_ip_pktinfo(struct tcb *tcp, const void *cmsg_data,
        const struct in_pktinfo *info = cmsg_data;
 
        PRINT_FIELD_IFINDEX("{", *info, ipi_ifindex);
-       tprintf(", ipi_spec_dst=inet_addr(\"%s\")",
-               inet_ntoa(info->ipi_spec_dst));
-       tprintf(", ipi_addr=inet_addr(\"%s\")}",
-               inet_ntoa(info->ipi_addr));
+       PRINT_FIELD_INET4_ADDR(", ", *info, ipi_spec_dst);
+       PRINT_FIELD_INET4_ADDR(", ", *info, ipi_addr);
+       tprints("}");
 }
 
 static void
diff --git a/net.c b/net.c
index 49a36342765f0893f4d068877a5473a692b9be94..98b151e3b1c03bf5aaa422b24f68d10dfb3ae0f4 100644 (file)
--- a/net.c
+++ b/net.c
@@ -664,10 +664,9 @@ print_mreq(struct tcb *const tcp, const kernel_ulong_t addr,
        if (umove_or_printaddr(tcp, addr, &mreq))
                return;
 
-       tprintf("{imr_multiaddr=inet_addr(\"%s\")",
-               inet_ntoa(mreq.imr_multiaddr));
-       tprintf(", imr_interface=inet_addr(\"%s\")}",
-               inet_ntoa(mreq.imr_interface));
+       PRINT_FIELD_INET4_ADDR("{", mreq, imr_multiaddr);
+       PRINT_FIELD_INET4_ADDR(", ", mreq, imr_interface);
+       tprints("}");
 }
 #endif /* IP_ADD_MEMBERSHIP */
 
index f09b3e47171d07627fc3a605f82db05e805ebc65..5fb652a360aaadbb9ff8aa9b23b42a2bbcfd2b4e 100644 (file)
                                sizeof((where_).field_), #field_);      \
        } while (0)
 
+#define PRINT_FIELD_INET4_ADDR(prefix_, where_, field_)                        \
+       STRACE_PRINTF("%s%s=inet_addr(\"%s\")", (prefix_), #field_,     \
+                     inet_ntoa((where_).field_))
+
 #define PRINT_FIELD_NET_PORT(prefix_, where_, field_)                  \
        STRACE_PRINTF("%s%s=htons(%u)", (prefix_), #field_,             \
                      ntohs((where_).field_))
index 6984bcbac691712d170e02bbfba55fd19debff26..8f1945da005e2f701c4ffca466ca5fe5092e6432 100644 (file)
@@ -117,7 +117,7 @@ print_sockaddr_data_in(const void *const buf, const int addrlen)
        const struct sockaddr_in *const sa_in = buf;
 
        PRINT_FIELD_NET_PORT("", *sa_in, sin_port);
-       tprintf(", sin_addr=inet_addr(\"%s\")", inet_ntoa(sa_in->sin_addr));
+       PRINT_FIELD_INET4_ADDR(", ", *sa_in, sin_addr);
 }
 
 #define SIN6_MIN_LEN offsetof(struct sockaddr_in6, sin6_scope_id)