diff options
author | JingPiao Chen <chenjingpiao@gmail.com> | 2017-06-07 23:35:19 +0800 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2017-06-08 22:26:46 +0000 |
commit | 427e30ef1cb5f43e6f0ff059fc91f54b77d588a8 (patch) | |
tree | 6072f521ec98c559e06e5441d57d9ce074c25b65 /tests/netlink_sock_diag.c | |
parent | fe36545586e3c41cfd12e71be5afc4beb4e72daa (diff) | |
download | strace-427e30ef1cb5f43e6f0ff059fc91f54b77d588a8.tar.gz |
tests: add check for decoding netlink get and new flags
* tests/netlink_route.c (test_nlmsg_flags): New function, checks
decoding of NETLINK_ROUTE get and new flags.
(main): Use it.
* tests/netlink_sock_diag.c (test_nlmsg_flags): New function, checks
decoding of NETLINK_SOCK_DIAG get flags.
(main): Use it.
* tests/netlink_xfrm.c: (test_nlmsg_flags): New function, checks
decoding of NETLINK_XFRM get and new flags.
(main): Use it.
Diffstat (limited to 'tests/netlink_sock_diag.c')
-rw-r--r-- | tests/netlink_sock_diag.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/netlink_sock_diag.c b/tests/netlink_sock_diag.c index 09eb2bfea..3fa0bb1fd 100644 --- a/tests/netlink_sock_diag.c +++ b/tests/netlink_sock_diag.c @@ -55,6 +55,23 @@ test_nlmsg_type(const int fd) fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc)); } +static void +test_nlmsg_flags(const int fd) +{ + long rc; + struct nlmsghdr nlh = { + .nlmsg_len = sizeof(nlh), + .nlmsg_type = SOCK_DIAG_BY_FAMILY, + .nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP, + }; + + rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0); + printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY" + ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}}" + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", + fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc)); +} + int main(void) { skip_if_unavailable("/proc/self/fd/"); @@ -62,6 +79,7 @@ int main(void) int fd = create_nl_socket(NETLINK_SOCK_DIAG); test_nlmsg_type(fd); + test_nlmsg_flags(fd); printf("+++ exited with 0 +++\n"); |