2 * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
3 * Copyright (c) 2017-2018 The strace developers.
6 * SPDX-License-Identifier: GPL-2.0-or-later
11 #ifdef HAVE_LINUX_NETFILTER_IPSET_IP_SET_H
14 # include <sys/socket.h>
16 # include <linux/netfilter/nfnetlink.h>
17 # include <linux/netfilter/ipset/ip_set.h>
20 test_nlmsg_type(const int fd)
23 struct nlmsghdr nlh = {
24 .nlmsg_len = sizeof(nlh),
25 .nlmsg_flags = NLM_F_REQUEST,
28 nlh.nlmsg_type = NFNL_SUBSYS_IPSET << 8 | IPSET_CMD_NONE;
29 rc = sendto(fd, &nlh, nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0);
30 printf("sendto(%d, {len=%u"
31 ", type=NFNL_SUBSYS_IPSET<<8|IPSET_CMD_NONE"
32 ", flags=NLM_F_REQUEST, seq=0, pid=0}"
33 ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
34 fd, nlh.nlmsg_len, nlh.nlmsg_len, sprintrc(rc));
36 nlh.nlmsg_type = NFNL_SUBSYS_IPSET << 8 | 0xff;
37 rc = sendto(fd, &nlh, nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0);
38 printf("sendto(%d, {len=%u"
39 ", type=NFNL_SUBSYS_IPSET<<8|0xff /* IPSET_CMD_??? */"
40 ", flags=NLM_F_REQUEST, seq=0, pid=0}"
41 ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
42 fd, nlh.nlmsg_len, nlh.nlmsg_len, sprintrc(rc));
48 skip_if_unavailable("/proc/self/fd/");
50 int fd = create_nl_socket(NETLINK_NETFILTER);
54 puts("+++ exited with 0 +++");
61 SKIP_MAIN_UNDEFINED("HAVE_LINUX_NETFILTER_IPSET_IP_SET_H")