]> granicus.if.org Git - strace/commitdiff
print_inet_addr: add support of invocations without field name
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 20 Aug 2017 11:10:03 +0000 (11:10 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 20 Aug 2017 11:10:03 +0000 (11:10 +0000)
Prepare print_inet_addr for use in structureless contexts where
no structure field name is available.

* sockaddr.c (print_inet_addr): Handle var_name == NULL.

sockaddr.c

index 1d14bfddf3583dbd50b61ed3ef0bd08ca83e2e27..81d861bab205e33dd922180b534b7a08898105cf 100644 (file)
@@ -94,20 +94,27 @@ print_inet_addr(const int af,
        switch (af) {
        case AF_INET:
                if (inet_ntop(af, addr, buf, sizeof(buf))) {
-                       tprintf("%s=inet_addr(\"%s\")", var_name, buf);
+                       if (var_name)
+                               tprintf("%s=inet_addr(\"%s\")", var_name, buf);
+                       else
+                               tprints(buf);
                        return true;
                }
                break;
        case AF_INET6:
                if (inet_ntop(af, addr, buf, sizeof(buf))) {
-                       tprintf("inet_pton(%s, \"%s\", &%s)",
-                               "AF_INET6", buf, var_name);
+                       if (var_name)
+                               tprintf("inet_pton(%s, \"%s\", &%s)",
+                                       "AF_INET6", buf, var_name);
+                       else
+                               tprints(buf);
                        return true;
                }
                break;
        }
 
-       tprintf("%s=", var_name);
+       if (var_name)
+               tprintf("%s=", var_name);
        print_quoted_string(addr, len, QUOTE_FORCE_HEX);
        return false;
 }