On Wed, Aug 09, 2017 at 10:07:38AM +0800, JingPiao Chen wrote: > * netlink_route.c: New file. > * Makefile.am (strace_SOURCES): Add it. > * defs.h (decode_netlink_route): New prototype. > * netlink.c (netlink_decoders): Add NETLINK_ROUTE. > > Co-authored-by: Fabien Siron <fabien.si...@epita.fr> > --- > Makefile.am | 1 + > defs.h | 1 + > netlink.c | 1 + > netlink_route.c | 62 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 65 insertions(+) > create mode 100644 netlink_route.c > > diff --git a/Makefile.am b/Makefile.am > index 5b2b93a..23ce121 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -193,6 +193,7 @@ strace_SOURCES = \ > netlink_inet_diag.c \ > netlink_netlink_diag.c \ > netlink_packet_diag.c \ > + netlink_route.c \ > netlink_selinux.c \ > netlink_smc_diag.c \ > netlink_sock_diag.c \ > diff --git a/defs.h b/defs.h > index 081fd4a..44a6296 100644 > --- a/defs.h > +++ b/defs.h > @@ -697,6 +697,7 @@ decode_netlink_ ## name(struct tcb *, const struct > nlmsghdr *, \ > /* End of DECL_NETLINK definition. */ > > DECL_NETLINK(crypto); > +DECL_NETLINK(route); > DECL_NETLINK(selinux); > DECL_NETLINK(sock_diag); > > diff --git a/netlink.c b/netlink.c > index 2f34673..2a0353f 100644 > --- a/netlink.c > +++ b/netlink.c > @@ -372,6 +372,7 @@ static const netlink_decoder_t netlink_decoders[] = { > #ifdef HAVE_LINUX_CRYPTOUSER_H > [NETLINK_CRYPTO] = decode_netlink_crypto, > #endif > + [NETLINK_ROUTE] = decode_netlink_route, > [NETLINK_SELINUX] = decode_netlink_selinux, > [NETLINK_SOCK_DIAG] = decode_netlink_sock_diag > }; > diff --git a/netlink_route.c b/netlink_route.c > new file mode 100644 > index 0000000..2e7faa4 > --- /dev/null > +++ b/netlink_route.c > @@ -0,0 +1,62 @@ > +/* > + * Copyright (c) 2016 Fabien Siron <fabien.si...@epita.fr> > + * Copyright (c) 2017 JingPiao Chen <chenjingp...@gmail.com> > + * Copyright (c) 2016-2017 The strace developers. > + * All rights reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * 3. The name of the author may not be used to endorse or promote products > + * derived from this software without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR > + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. > + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + */ > + > +#include "defs.h" > +#include "netlink.h" > + > +static void > +decode_family(struct tcb *const tcp, const uint8_t family, > + const kernel_ulong_t addr, const unsigned int len) > +{ > + tprints("{family="); > + printxval(addrfams, family, "AF_???"); > + if (len > sizeof(family)) { > + tprints(", "); > + printstr_ex(tcp, addr + sizeof(family), > + len - sizeof(family), QUOTE_FORCE_HEX); > + } > + tprints("}"); > +} > + > +bool > +decode_netlink_route(struct tcb *const tcp, > + const struct nlmsghdr *const nlmsghdr, > + const kernel_ulong_t addr, > + const unsigned int len) > +{ > + uint8_t family; > + > + if (nlmsghdr->nlmsg_type == NLMSG_DONE) > + return false;
Thanks, I've merged the series. Please note that "nlmsghdr->nlmsg_type == NLMSG_DONE" branch of this statement is not covered by tests yet. -- ldv
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel