summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2010-02-05 11:30:55 -0500
committerFrank Ch. Eigler <fche@elastic.org>2010-02-05 11:31:24 -0500
commitfdfb4bfea493d90773a33f69902a33580ab5adc4 (patch)
tree7ae46f3ca9dcd1b9d4a531399f1220ca41327f2d
parenta2d399c87a642190f08ede63dc6fc434a5a8363a (diff)
downloadsystemtap-steved-fdfb4bfea493d90773a33f69902a33580ab5adc4.tar.gz
systemtap-steved-fdfb4bfea493d90773a33f69902a33580ab5adc4.tar.xz
systemtap-steved-fdfb4bfea493d90773a33f69902a33580ab5adc4.zip
pfiles.stp sample: begin tcp option dumping
-rwxr-xr-xtestsuite/systemtap.examples/process/pfiles.stp33
1 files changed, 18 insertions, 15 deletions
diff --git a/testsuite/systemtap.examples/process/pfiles.stp b/testsuite/systemtap.examples/process/pfiles.stp
index 8ac90c64..3b968625 100755
--- a/testsuite/systemtap.examples/process/pfiles.stp
+++ b/testsuite/systemtap.examples/process/pfiles.stp
@@ -77,6 +77,7 @@
#include <linux/file.h>
#include <net/sock.h>
#include <linux/un.h>
+#include <linux/tcp.h>
%}
function task_valid_file_handle:long (task:long, fd:long) %{ /* pure */
@@ -339,30 +340,32 @@ function socket_optname:string (sock:long) %{ /* pure */
char str[30];
struct linger ling;
struct optname_item {
+ int optfam;
int optnum;
const char *optname;
int show_val;
} *p;
struct optname_item optname_entries[] = {
- { SO_DEBUG, "SO_DEBUG", 0 },
- { SO_REUSEADDR, "SO_REUSEADDR", 0 },
- { SO_DONTROUTE, "SO_DONTROUTE", 0 },
- { SO_BROADCAST, "SO_BROADCAST", 0 },
- { SO_KEEPALIVE, "SO_KEEPALIVE", 0 },
- { SO_OOBINLINE, "SO_OOBINLINE", 0 },
- { SO_PASSCRED, "SO_PASSCRED", 0 },
-/* { SO_SNDLOWAT, "SO_SNDLOWAT", 0 },*/
- { SO_TYPE, "SO_TYPE", 1 },
- { SO_ERROR, "SO_ERROR", 1 },
- { SO_SNDBUF, "SO_SNDBUF", 1 },
- { SO_RCVBUF, "SO_RCVBUF", 1 },
- { SO_NO_CHECK, "SO_NO_CHECK", 1 },
- { 0, NULL, 0 },
+ { SOL_SOCKET, SO_DEBUG, "SO_DEBUG", 0 },
+ { SOL_SOCKET, SO_REUSEADDR, "SO_REUSEADDR", 0 },
+ { SOL_SOCKET, SO_DONTROUTE, "SO_DONTROUTE", 0 },
+ { SOL_SOCKET, SO_BROADCAST, "SO_BROADCAST", 0 },
+ { SOL_SOCKET, SO_KEEPALIVE, "SO_KEEPALIVE", 0 },
+ { SOL_SOCKET, SO_OOBINLINE, "SO_OOBINLINE", 0 },
+ { SOL_SOCKET, SO_PASSCRED, "SO_PASSCRED", 0 },
+/* { SOL_SOCKET, SO_SNDLOWAT, "SO_SNDLOWAT", 0 },*/
+ { SOL_SOCKET, SO_TYPE, "SO_TYPE", 1 },
+ { SOL_SOCKET, SO_ERROR, "SO_ERROR", 1 },
+ { SOL_SOCKET, SO_SNDBUF, "SO_SNDBUF", 1 },
+ { SOL_SOCKET, SO_RCVBUF, "SO_RCVBUF", 1 },
+ { SOL_SOCKET, SO_NO_CHECK, "SO_NO_CHECK", 1 },
+ { SOL_TCP, TCP_NODELAY, "TCP_NODELAY", 0 },
+ { 0, 0, NULL, 0 },
};
for (p = optname_entries; p->optname; ++p) {
optlen = sizeof(optval);
- ret = kernel_getsockopt(sock, SOL_SOCKET, p->optnum, (char *)&optval, &optlen);
+ ret = kernel_getsockopt(sock, p->optfam, p->optnum, (char *)&optval, &optlen);
if (ret == 0 && optval != 0) {
if (!p->show_val)
snprintf(str, MAXSTRINGLEN, "%s,", p->optname);