From: Fabien Siron Date: Tue, 21 Jun 2016 14:42:44 +0000 (+0000) Subject: Change printsock to return socket family X-Git-Tag: v4.13~113 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0a1ce620626de07f1a3f3ddba19d74aaa6638597;p=strace Change printsock to return socket family * defs.h (printsock): Change return type to int. * net.c (printsock): Likewise. Return socket family on success and -1 in case of an error. --- diff --git a/defs.h b/defs.h index ad2065bf..8672f963 100644 --- 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 9deff8f9..61c7ad9f 100644 --- 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"