[PATCH v5 4/4] Netlink: handle multi netlink messages
Fabien Siron
fabien.siron at epita.fr
Tue Jun 21 12:44:45 UTC 2016
Quoting Dmitry V. Levin (2016-06-20 23:40:38)
> On Mon, Jun 20, 2016 at 04:06:45PM +0000, Fabien Siron wrote:
> > This commit handles the case where there are several messages in the buffer.
> > This is very useful to some protocols like SOCK_DIAG.
> >
> > * netlink.c (nlmsg_fetch, nlmsg_next): New functions.
> > (decode_netlink_msg): New function.
> > (decode_netlink): Call decode_netlink_msg().
> > * tests/netlink_parsing.c (send_query): Adapt test.
> > ---
> > netlink.c | 45 +++++++++++++++++++++++++++++++++++++++++++--
> > tests/netlink_parsing.c | 8 ++++----
> > 2 files changed, 47 insertions(+), 6 deletions(-)
> >
> > diff --git a/netlink.c b/netlink.c
> > index c43f6e7..fecc413 100644
> > --- a/netlink.c
> > +++ b/netlink.c
> > @@ -31,8 +31,34 @@
[...]
> > +void
> > +decode_netlink(struct tcb *tcp, unsigned long addr, unsigned long total_size) {
> > + struct nlmsghdr nlmsghdr;
> > + unsigned long size = total_size;
> > +
> > + for (; nlmsg_fetch(tcp, &nlmsghdr, addr, size);
> > + addr = nlmsg_next(&nlmsghdr, addr, &size)) {
> > + if (size != total_size)
> > + tprints(", ");
> > + tprints("{");
> > + decode_netlink_msg(tcp, addr, size);
> > + tprints("}");
>
> Square brackets are more appropriate for this sequence of structures,
> one before the first element and one after the last. No need to enclose
> each element in additional brackets. I'd say if there is only one
> element, no need to enclose it in additional brackets, too.
>
> Should there be a limit on the number of elements printed?
Well, maybe a limit could be useful in non verbose, but in verbose everything
should be printed, isn't it?
Cheers,
--
Fabien Siron
More information about the Strace-devel
mailing list