diff options
| -rw-r--r-- | tapset/inet.stp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tapset/inet.stp b/tapset/inet.stp new file mode 100644 index 0000000..9df5ea6 --- /dev/null +++ b/tapset/inet.stp @@ -0,0 +1,20 @@ +%{ +#include <net/sock.h> +#include <net/inet_hashtables.h> +#include <linux/in.h> +%} + +function _inet_ntoa:string (_uaddr:long) %{ + struct sockaddr_in *addr; + unsigned char *bytes; + + addr = (struct sockaddr_in *)(long)kread(&THIS->_uaddr); + bytes = (unsigned char *)&addr->sin_addr.s_addr; + + snprintf(THIS->__retvalue, MAXSTRINGLEN, + "%d.%d.%d.%d:%d", bytes[0], bytes[1], bytes[2], bytes[3], + addr->sin_port); + + CATCH_DEREF_FAULT(); +%} + |
