summaryrefslogtreecommitdiff
path: root/tests/netlink_sock_diag.c
diff options
context:
space:
mode:
authorJingPiao Chen <chenjingpiao@gmail.com>2017-06-07 23:35:19 +0800
committerDmitry V. Levin <ldv@altlinux.org>2017-06-08 22:26:46 +0000
commit427e30ef1cb5f43e6f0ff059fc91f54b77d588a8 (patch)
tree6072f521ec98c559e06e5441d57d9ce074c25b65 /tests/netlink_sock_diag.c
parentfe36545586e3c41cfd12e71be5afc4beb4e72daa (diff)
downloadstrace-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.c18
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");