]> sourceware.org Git - systemtap.git/commitdiff
PR 11338 (partial): Used '@defined()' in inet_sock tapsets.
authorDavid Smith <dsmith@redhat.com>
Fri, 26 Mar 2010 19:17:48 +0000 (14:17 -0500)
committerDavid Smith <dsmith@redhat.com>
Fri, 26 Mar 2010 19:17:48 +0000 (14:17 -0500)
* tapset/inet_sock.stp (inet_get_local_port): Used '@defined' instead of a
  kernel version check.  Added RHEL4 support.
  (inet_get_ip_source): Now calls __ip_sock_daddr() to get daddr.

tapset/inet_sock.stp

index 3962f5a17c0ab1487f5be5260b3837a80a8eebab..93ed98a4f9f8cd2aa68514920c0f2367800f783b 100644 (file)
@@ -1,7 +1,7 @@
 // inet_sock information tapset 
 // Copyright (C) 2006 IBM Corp.
 // Copyright (C) 2006 Intel Corporation.
-// Copyright (C) 2009 Red Hat, Inc.
+// Copyright (C) 2009-2010 Red Hat, Inc.
 //
 // This file is part of systemtap, and is free software.  You can
 // redistribute it and/or modify it under the terms of the GNU General
 // return.
 function inet_get_local_port:long(sock:long)
 {
-%(kernel_v < "2.6.11" %?
-  port = @cast(sock, "inet_sock", "kernel")->inet->num;
-%:
-%(kernel_v < "2.6.33" %?
-  port = @cast(sock, "inet_sock", "kernel")->num;
-%:
-  port = @cast(sock, "inet_sock", "kernel")->inet_num;
-%)
-%)
-  return port;
+    return (@defined(@cast(sock, "inet_sock")->inet_num)
+           ? @cast(sock, "inet_sock")->inet_num # kernel >= 2.6.33
+           : (@defined(@cast(sock, "inet_sock")->num)
+              ? @cast(sock, "inet_sock", "kernel")->num # kernel >= 2.6.11
+              : @cast(sock, "inet_sock", "kernel<net/ip.h>")->inet->num))
 }
 
 // Get IP source address string given a pointer to a kernel socket.
 function inet_get_ip_source:string(sock:long)
 {
-%(kernel_v < "2.6.11" %?
-  daddr = @cast(sock, "inet_sock", "kernel")->inet->daddr;
-%:
-%(kernel_v < "2.6.33" %?
-  daddr = @cast(sock, "inet_sock", "kernel")->daddr;
-%:
-  daddr = @cast(sock, "inet_sock", "kernel")->inet_daddr;
-%)
-%)
-  return daddr_to_string(daddr);
+    return daddr_to_string(__ip_sock_daddr(sock));
 }
 
 // Turns a daddr as found in an inet_sock into a dotted ip string.
This page took 0.028792 seconds and 5 git commands to generate.