]> granicus.if.org Git - strace/commitdiff
Decode file descriptors returned by accept and accept4 syscalls
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 6 Aug 2014 16:46:13 +0000 (16:46 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 6 Aug 2014 16:49:59 +0000 (16:49 +0000)
* net.c (do_accept): Rename to do_sockname.
(sys_accept, sys_accept4): Update callers, return RVAL_FD.
(sys_getsockname, sys_getpeername): Call do_sockname directly.
* tests/net-fd.test: Update.

net.c
tests/net-fd.test

diff --git a/net.c b/net.c
index 08341adcf75e45968e101f3687ca1e997c9ee19b..0e6bcce649a44909684079ea9dc3de5c5482bfc3 100644 (file)
--- a/net.c
+++ b/net.c
@@ -571,7 +571,7 @@ sys_listen(struct tcb *tcp)
 }
 
 static int
-do_accept(struct tcb *tcp, int flags_arg)
+do_sockname(struct tcb *tcp, int flags_arg)
 {
        if (entering(tcp)) {
                printfd(tcp, tcp->u_arg[0]);
@@ -602,13 +602,15 @@ do_accept(struct tcb *tcp, int flags_arg)
 int
 sys_accept(struct tcb *tcp)
 {
-       return do_accept(tcp, -1);
+       do_sockname(tcp, -1);
+       return RVAL_FD;
 }
 
 int
 sys_accept4(struct tcb *tcp)
 {
-       return do_accept(tcp, 3);
+       do_sockname(tcp, 3);
+       return RVAL_FD;
 }
 
 int
@@ -827,13 +829,13 @@ sys_shutdown(struct tcb *tcp)
 int
 sys_getsockname(struct tcb *tcp)
 {
-       return sys_accept(tcp);
+       return do_sockname(tcp, -1);
 }
 
 int
 sys_getpeername(struct tcb *tcp)
 {
-       return sys_accept(tcp);
+       return do_sockname(tcp, -1);
 }
 
 static int
index 0f6b4e2cc8ae0b634127b2b09f28c871f6f3ddfc..fc0d3cd0649e4eab8974bcb42f041af048a61c28 100755 (executable)
@@ -41,7 +41,7 @@ grep_log()
 grep_log bind '\(0<socket:\[[0-9]+\]>, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="local-stream"\}, 15\) += 0'
 grep_log listen '\(0<socket:\[[0-9]+\]>, 5\) += 0'
 grep_log getsockname '\(0<socket:\[[0-9]+\]>, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="local-stream"\}, \[15\]\) += 0'
-grep_log accept '\(0<socket:\[[0-9]+\]>, \{sa_family=AF_(LOCAL|UNIX|FILE), NULL\}, \[2\]\) += 1'
+grep_log accept '\(0<socket:\[[0-9]+\]>, \{sa_family=AF_(LOCAL|UNIX|FILE), NULL\}, \[2\]\) += 1<socket:\[[0-9]+\]>'
 grep_log connect '\(1<socket:\[[0-9]+\]>, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="local-stream"\}, 15\) += 0'
 
 exit 0