diff options
author | fche <fche> | 2006-08-12 05:13:09 +0000 |
---|---|---|
committer | fche <fche> | 2006-08-12 05:13:09 +0000 |
commit | 814bc89d4635f101b2c0077598f31aad95ed15b7 (patch) | |
tree | 407a49dbaf446af4751f5068607a7fb8dad0611d /testsuite/systemtap.samples/tcp_connections_wa.stp | |
parent | 6b6d04673a1ef175821afc7d4fabdb496698e8e3 (diff) | |
download | systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.tar.gz systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.tar.xz systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.zip |
2006-08-12 Frank Ch. Eigler <fche@elastic.org>
* configure.ac, Makefile.am: Descend into testsuite/
directory. Remove local test logic.
* configure, Makefile.in: Regenerated.
* runtest.sh: Not yet removed.
* HACKING: Update for new testsuite layout.
2006-08-12 Frank Ch. Eigler <fche@elastic.org>
* all: Reorganized old pass-1..4 tests one dejagnu bucket.
Moved over old pass-5 tests, except for disabled syscalls tests.
* Makefile (installcheck): New target for running pass-1..5
tests against installed systemtap.
Diffstat (limited to 'testsuite/systemtap.samples/tcp_connections_wa.stp')
-rw-r--r-- | testsuite/systemtap.samples/tcp_connections_wa.stp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testsuite/systemtap.samples/tcp_connections_wa.stp b/testsuite/systemtap.samples/tcp_connections_wa.stp new file mode 100644 index 00000000..4c5e2399 --- /dev/null +++ b/testsuite/systemtap.samples/tcp_connections_wa.stp @@ -0,0 +1,55 @@ +%{ +#include <linux/version.h> +#include <net/sock.h> +#include <net/tcp.h> + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) +#define LPORT (inet->inet.num) +#define DADDR (&inet->inet.daddr) +#else +#define LPORT (inet->num) +#define DADDR (&inet->daddr) +#endif +%} + + +function get_eax:long () %{ + if (CONTEXT && CONTEXT->regs) + THIS->__retvalue = CONTEXT->regs->eax; + else + THIS->__retvalue = 0; +%} + +function get_local_port:long(sock) +%{ + unsigned long ptr = (unsigned long) THIS->sock; + + struct inet_sock *inet = (struct inet_sock *) ptr; + THIS->__retvalue = (long long) LPORT; +%} + +function get_ip_source:string(sock) +%{ + unsigned long ptr = (unsigned long) THIS->sock; + struct inet_sock *inet = (struct inet_sock *) ptr; + unsigned char addr[4]; + memcpy(addr, DADDR, sizeof(addr)); + sprintf(THIS->__retvalue, "%d.%d.%d.%d", + addr[0], addr[1], addr[2], addr[3]); + +%} + +probe begin { + log ("UID\tCMD\t\tPID\t\tPORT\tIP_SOURCE") +} +probe kernel.function("tcp_accept").return { + sock = get_eax() + if (sock != 0) + log(sprint(uid())."\t". + execname()."\t\t". + sprint(pid())."\t\t ". + sprint(get_local_port(sock))."\t". + get_ip_source(sock)) +} + + |