]> granicus.if.org Git - strace/commitdiff
Export decode_inet_addr
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 22 Aug 2017 11:35:20 +0000 (11:35 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 22 Aug 2017 11:39:03 +0000 (11:39 +0000)
* defs.h (decode_inet_addr): New prototype.
* netlink_inet_diag.c (decode_inet_addr): Remove static keyword, move ...
* sockaddr.c: ... here.

defs.h
netlink_inet_diag.c
sockaddr.c

diff --git a/defs.h b/defs.h
index e6659a57712bc9fad248bacae968735a8dbd3cec..d83f4edc963376f95ff69d9bc7255462ebe6785c 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -610,6 +610,9 @@ extern void printfd(struct tcb *, int);
 extern void print_sockaddr(const void *sa, int len);
 extern bool
 print_inet_addr(int af, const void *addr, unsigned int len, const char *var_name);
+extern bool
+decode_inet_addr(struct tcb *, kernel_ulong_t addr,
+                unsigned int len, int family, const char *var_name);
 extern const char *get_sockaddr_by_inode(struct tcb *, int fd, unsigned long inode);
 extern bool print_sockaddr_by_inode(struct tcb *, int fd, unsigned long inode);
 extern void print_dirfd(struct tcb *, int);
index 4e33a4f41e2504d5ac3041d7231fa8ee28e247fc..700cbd3b2b75c151a6324a66f8fdcb96729857b5 100644 (file)
@@ -58,45 +58,6 @@ print_inet_diag_sockid(const struct inet_diag_sockid *id, const uint8_t family)
        tprints("}");
 }
 
-static bool
-decode_inet_addr(struct tcb *const tcp,
-                const kernel_ulong_t addr,
-                const unsigned int len,
-                const int family,
-                const char *const var_name)
-{
-       union {
-               struct in_addr  a4;
-               struct in6_addr a6;
-       } addrbuf;
-       size_t size = 0;
-
-       switch (family) {
-       case AF_INET:
-               size = sizeof(addrbuf.a4);
-               break;
-       case AF_INET6:
-               size = sizeof(addrbuf.a6);
-               break;
-       }
-
-       if (!size || len < size) {
-               if (var_name)
-                       tprintf("%s=", var_name);
-               printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);
-               return false;
-       }
-
-       if (umoven(tcp, addr, size, &addrbuf) < 0) {
-               if (var_name)
-                       tprintf("%s=", var_name);
-               printaddr(addr);
-               return false;
-       }
-
-       return print_inet_addr(family, &addrbuf, size, var_name);
-}
-
 static void
 decode_inet_diag_hostcond(struct tcb *const tcp,
                          const kernel_ulong_t addr,
index 81d861bab205e33dd922180b534b7a08898105cf..34c565bf6924da200b8d7a025799ac8b23750373 100644 (file)
@@ -119,6 +119,45 @@ print_inet_addr(const int af,
        return false;
 }
 
+bool
+decode_inet_addr(struct tcb *const tcp,
+                const kernel_ulong_t addr,
+                const unsigned int len,
+                const int family,
+                const char *const var_name)
+{
+       union {
+               struct in_addr  a4;
+               struct in6_addr a6;
+       } addrbuf;
+       size_t size = 0;
+
+       switch (family) {
+       case AF_INET:
+               size = sizeof(addrbuf.a4);
+               break;
+       case AF_INET6:
+               size = sizeof(addrbuf.a6);
+               break;
+       }
+
+       if (!size || len < size) {
+               if (var_name)
+                       tprintf("%s=", var_name);
+               printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);
+               return false;
+       }
+
+       if (umoven(tcp, addr, size, &addrbuf) < 0) {
+               if (var_name)
+                       tprintf("%s=", var_name);
+               printaddr(addr);
+               return false;
+       }
+
+       return print_inet_addr(family, &addrbuf, size, var_name);
+}
+
 static void
 print_sockaddr_data_in(const void *const buf, const int addrlen)
 {