diff options
author | Masatake YAMATO <yamato@redhat.com> | 2014-03-11 23:37:37 +0900 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2014-03-11 22:56:42 +0000 |
commit | 2394a3d0e5ee5684a42b36218ada2dcf3b4e705f (patch) | |
tree | cc35aa3f668b49c2d6cb781a484e23318bd60564 | |
parent | 033fb910a291a26d714d277c748683e67903f44c (diff) | |
download | strace-2394a3d0e5ee5684a42b36218ada2dcf3b4e705f.tar.gz strace-2394a3d0e5ee5684a42b36218ada2dcf3b4e705f.tar.bz2 strace-2394a3d0e5ee5684a42b36218ada2dcf3b4e705f.tar.xz |
Decode protocol argument for PF_NETLINK sockets
* net.c (protocols): Rename to inet_protocols.
[PF_NETLINK] (netlink_protocols): New xlat structure.
(sys_socket): Rename protocols to inet_protocols.
[PF_NETLINK]: Decode protocol argument using netlink_protocols.
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | net.c | 81 |
1 files changed, 78 insertions, 3 deletions
@@ -479,8 +479,8 @@ static const struct xlat socketlayers[] = { /* The SOL_* array should remain not NULL-terminated. */ }; /*** WARNING: DANGER WILL ROBINSON: NOTE "socketlayers" array above - falls into "protocols" array below!!!! This is intended!!! ***/ -static const struct xlat protocols[] = { + falls into "inet_protocols" array below!!!! This is intended!!! ***/ +static const struct xlat inet_protocols[] = { XLAT(IPPROTO_IP), XLAT(IPPROTO_ICMP), XLAT(IPPROTO_TCP), @@ -571,6 +571,76 @@ static const struct xlat protocols[] = { #endif XLAT_END }; + +#ifdef PF_NETLINK +static const struct xlat netlink_protocols[] = { +#ifdef NETLINK_ROUTE + XLAT(NETLINK_ROUTE), +#endif +#ifdef NETLINK_UNUSED + XLAT(NETLINK_UNUSED), +#endif +#ifdef NETLINK_USERSOCK + XLAT(NETLINK_USERSOCK), +#endif +#ifdef NETLINK_FIREWALL + XLAT(NETLINK_FIREWALL), +#endif +#ifdef NETLINK_SOCK_DIAG + XLAT(NETLINK_SOCK_DIAG), +#endif +#ifdef NETLINK_NFLOG + XLAT(NETLINK_NFLOG), +#endif +#ifdef NETLINK_XFRM + XLAT(NETLINK_XFRM), +#endif +#ifdef NETLINK_SELINUX + XLAT(NETLINK_SELINUX), +#endif +#ifdef NETLINK_ISCSI + XLAT(NETLINK_ISCSI), +#endif +#ifdef NETLINK_AUDIT + XLAT(NETLINK_AUDIT), +#endif +#ifdef NETLINK_FIB_LOOKUP + XLAT(NETLINK_FIB_LOOKUP), +#endif +#ifdef NETLINK_CONNECTOR + XLAT(NETLINK_CONNECTOR), +#endif +#ifdef NETLINK_NETFILTER + XLAT(NETLINK_NETFILTER), +#endif +#ifdef NETLINK_IP6_FW + XLAT(NETLINK_IP6_FW), +#endif +#ifdef NETLINK_DNRTMSG + XLAT(NETLINK_DNRTMSG), +#endif +#ifdef NETLINK_KOBJECT_UEVENT + XLAT(NETLINK_KOBJECT_UEVENT), +#endif +#ifdef NETLINK_GENERIC + XLAT(NETLINK_GENERIC), +#endif +#ifdef NETLINK_SCSITRANSPORT + XLAT(NETLINK_SCSITRANSPORT), +#endif +#ifdef NETLINK_ECRYPTFS + XLAT(NETLINK_ECRYPTFS), +#endif +#ifdef NETLINK_RDMA + XLAT(NETLINK_RDMA), +#endif +#ifdef NETLINK_CRYPTO + XLAT(NETLINK_CRYPTO), +#endif + XLAT_END +}; +#endif + static const struct xlat msg_flags[] = { XLAT(MSG_OOB), #ifdef MSG_PEEK @@ -1689,7 +1759,7 @@ sys_socket(struct tcb *tcp) #ifdef PF_INET6 case PF_INET6: #endif - printxval(protocols, tcp->u_arg[2], "IPPROTO_???"); + printxval(inet_protocols, tcp->u_arg[2], "IPPROTO_???"); break; #ifdef PF_IPX case PF_IPX: @@ -1699,6 +1769,11 @@ sys_socket(struct tcb *tcp) tprints("]"); break; #endif /* PF_IPX */ +#ifdef PF_NETLINK + case PF_NETLINK: + printxval(netlink_protocols, tcp->u_arg[2], "NETLINK_???"); + break; +#endif default: tprintf("%lu", tcp->u_arg[2]); break; |