Hi list,

I did a quick netlink header parser for sendmsg/recvmsg which does the
following:

$ strace -qq -erecvmsg tests/netlink_inet_diag > /dev/null  
recvmsg(1, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, \
msg_iov(1)={len=96, type=20, flags=2, seq=0, pid=26615}, \
msg_controllen=0, msg_flags=0}, 0) = 672

Of course, this is just a draft to get an idea on how the futur parser will
work (so forget about the flags for the moment).
Logically, the next step would be to handle the different protocols, but
how can I obtain the protocol of a netlink socket fd?

I have two ideas:
* keep all the pairs fd/protocol in a table when running the socket
syscall.
* obtain the socket inode and then parse /proc/net/netlink to obtain the
protocol.

Of course these two ideas can be used together.

Has anyone got a better idea?

Cheers,
--
Fabien Siron

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to