]> granicus.if.org Git - strace/commitdiff
Change printsock to return socket family
authorFabien Siron <fabien.siron@epita.fr>
Tue, 21 Jun 2016 14:42:44 +0000 (14:42 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 21 Jun 2016 23:38:05 +0000 (23:38 +0000)
* defs.h (printsock): Change return type to int.
* net.c (printsock): Likewise.  Return socket family on success
and -1 in case of an error.

defs.h
net.c

diff --git a/defs.h b/defs.h
index ad2065bf23fb870f5b5889008fb43a72c9ab887c..8672f963a2eba9d3c80c513b25baf9e0d8edabab 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -650,7 +650,7 @@ extern void print_sockaddr(struct tcb *tcp, const void *, int);
 extern bool print_sockaddr_by_inode(const unsigned long, const enum sock_proto);
 extern bool print_sockaddr_by_inode_cached(const unsigned long);
 extern void print_dirfd(struct tcb *, int);
-extern void printsock(struct tcb *, long, int);
+extern int printsock(struct tcb *, long, int);
 extern void print_sock_optmgmt(struct tcb *, long, int);
 #ifdef ALPHA
 extern void printrusage32(struct tcb *, long);
diff --git a/net.c b/net.c
index 9deff8f93a7b0f19a99ca19daecf66117d1e36cc..61c7ad9f0134ff55fae5b6f409f52fb8327bd2b9 100644 (file)
--- a/net.c
+++ b/net.c
@@ -255,14 +255,14 @@ print_sockaddr(struct tcb *tcp, const void *const buf, const int addrlen)
        tprints("}");
 }
 
-void
+int
 printsock(struct tcb *tcp, long addr, int addrlen)
 {
        sockaddr_buf_t addrbuf;
 
        if (addrlen < 2) {
                printaddr(addr);
-               return;
+               return -1;
        }
 
        if (addrlen > (int) sizeof(addrbuf))
@@ -270,10 +270,12 @@ printsock(struct tcb *tcp, long addr, int addrlen)
 
        memset(&addrbuf, 0, sizeof(addrbuf));
        if (umoven_or_printaddr(tcp, addr, addrlen, addrbuf.pad))
-               return;
+               return -1;
        addrbuf.pad[sizeof(addrbuf.pad) - 1] = '\0';
 
        print_sockaddr(tcp, &addrbuf, addrlen);
+
+       return addrbuf.sa.sa_family;
 }
 
 #include "xlat/scmvals.h"