From 72ecbdb9f3b874e3bbd65510573f1cc12c1aec95 Mon Sep 17 00:00:00 2001 From: JingPiao Chen Date: Thu, 22 Jun 2017 00:24:22 +0800 Subject: [PATCH] netlink: introduce netlink.h * netlink.h: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_sock_diag.c: Include "netlink.h", remove and . * netlink.c: Likewise. (NLMSG_HDRLEN): Move to netlink.h. * tests/netlink_protocol.c: Replace with "netlink.h". * tests/netlink_sock_diag.c: Likewise. --- Makefile.am | 1 + netlink.c | 6 +---- netlink.h | 55 +++++++++++++++++++++++++++++++++++++++ netlink_sock_diag.c | 3 +-- tests/netlink_protocol.c | 2 +- tests/netlink_sock_diag.c | 2 +- 6 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 netlink.h diff --git a/Makefile.am b/Makefile.am index f9e78ed1..0d759700 100644 --- a/Makefile.am +++ b/Makefile.am @@ -173,6 +173,7 @@ strace_SOURCES = \ native_defs.h \ net.c \ netlink.c \ + netlink.h \ netlink_sock_diag.c \ nsfs.c \ nsfs.h \ diff --git a/netlink.c b/netlink.c index 24ac1ecb..87b389c4 100644 --- a/netlink.c +++ b/netlink.c @@ -28,9 +28,8 @@ */ #include "defs.h" -#include +#include "netlink.h" #include -#include #include #include #include "xlat/netlink_flags.h" @@ -46,9 +45,6 @@ #include "xlat/nl_sock_diag_types.h" #include "xlat/nl_xfrm_types.h" -#undef NLMSG_HDRLEN -#define NLMSG_HDRLEN NLMSG_ALIGN(sizeof(struct nlmsghdr)) - /* * Fetch a struct nlmsghdr from the given address. */ diff --git a/netlink.h b/netlink.h new file mode 100644 index 00000000..63b1945c --- /dev/null +++ b/netlink.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2017 JingPiao Chen + * Copyright (c) 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. + */ + +#ifndef STRACE_NETLINK_H +#define STRACE_NETLINK_H + +#include +#include + +#undef NLMSG_HDRLEN +#define NLMSG_HDRLEN ((unsigned int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) + +#ifndef NLMSG_MIN_TYPE +# define NLMSG_MIN_TYPE 0x10 +#endif + +#ifndef NLA_ALIGN +# define NLA_ALIGN(len) (((len) + 3) & ~3) +#endif + +#undef NLA_HDRLEN +#define NLA_HDRLEN ((unsigned int) NLA_ALIGN(sizeof(struct nlattr))) + +#ifndef NLA_TYPE_MASK +# define NLA_F_NESTED (1 << 15) +# define NLA_F_NET_BYTEORDER (1 << 14) +# define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER) +#endif + +#endif /* !STRACE_NETLINK_H */ diff --git a/netlink_sock_diag.c b/netlink_sock_diag.c index 8dbfd077..bdefe8b6 100644 --- a/netlink_sock_diag.c +++ b/netlink_sock_diag.c @@ -28,11 +28,10 @@ */ #include "defs.h" +#include "netlink.h" -#include #include #include -#include #include #include #ifdef AF_SMC diff --git a/tests/netlink_protocol.c b/tests/netlink_protocol.c index c2b40802..07e02108 100644 --- a/tests/netlink_protocol.c +++ b/tests/netlink_protocol.c @@ -32,13 +32,13 @@ #ifdef HAVE_SYS_XATTR_H +# include "netlink.h" # include # include # include # include # include # include -# include # include # include diff --git a/tests/netlink_sock_diag.c b/tests/netlink_sock_diag.c index 1b593449..86a42643 100644 --- a/tests/netlink_sock_diag.c +++ b/tests/netlink_sock_diag.c @@ -28,6 +28,7 @@ */ #include "tests.h" +#include "netlink.h" #include #include #include @@ -37,7 +38,6 @@ #include #include #include -#include #include #include #ifdef AF_SMC -- 2.40.0