aboutsummaryrefslogtreecommitdiff
path: root/sys/netlink/netlink_domain.c
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2023-01-21 14:36:23 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2023-01-21 14:58:19 +0000
commit0079d177ab69168df5e103128a2b15bd8e74d4eb (patch)
tree637005c7076fad657447ca379e0aaa7b0b3b7c26 /sys/netlink/netlink_domain.c
parent03a1b75950c95cd9360e5c283219b886d36afb53 (diff)
Diffstat (limited to 'sys/netlink/netlink_domain.c')
-rw-r--r--sys/netlink/netlink_domain.c44
1 files changed, 26 insertions, 18 deletions
diff --git a/sys/netlink/netlink_domain.c b/sys/netlink/netlink_domain.c
index f35cc7f09991..4d34fd381c39 100644
--- a/sys/netlink/netlink_domain.c
+++ b/sys/netlink/netlink_domain.c
@@ -698,31 +698,39 @@ nl_setsbopt(struct socket *so, struct sockopt *sopt)
return (result ? 0 : ENOBUFS);
}
-static struct protosw netlinksw = {
- .pr_type = SOCK_RAW,
- .pr_flags = PR_ATOMIC | PR_ADDR | PR_WANTRCVD,
- .pr_ctloutput = nl_ctloutput,
- .pr_setsbopt = nl_setsbopt,
- .pr_abort = nl_pru_abort,
- .pr_attach = nl_pru_attach,
- .pr_bind = nl_pru_bind,
- .pr_connect = nl_pru_connect,
- .pr_detach = nl_pru_detach,
- .pr_disconnect = nl_pru_disconnect,
- .pr_peeraddr = nl_pru_peeraddr,
- .pr_send = nl_pru_send,
- .pr_rcvd = nl_pru_rcvd,
- .pr_shutdown = nl_pru_shutdown,
- .pr_sockaddr = nl_pru_sockaddr,
+#define NETLINK_PROTOSW \
+ .pr_flags = PR_ATOMIC | PR_ADDR | PR_WANTRCVD, \
+ .pr_ctloutput = nl_ctloutput, \
+ .pr_setsbopt = nl_setsbopt, \
+ .pr_abort = nl_pru_abort, \
+ .pr_attach = nl_pru_attach, \
+ .pr_bind = nl_pru_bind, \
+ .pr_connect = nl_pru_connect, \
+ .pr_detach = nl_pru_detach, \
+ .pr_disconnect = nl_pru_disconnect, \
+ .pr_peeraddr = nl_pru_peeraddr, \
+ .pr_send = nl_pru_send, \
+ .pr_rcvd = nl_pru_rcvd, \
+ .pr_shutdown = nl_pru_shutdown, \
+ .pr_sockaddr = nl_pru_sockaddr, \
.pr_close = nl_pru_close
+
+static struct protosw netlink_raw_sw = {
+ .pr_type = SOCK_RAW,
+ NETLINK_PROTOSW
+};
+
+static struct protosw netlink_dgram_sw = {
+ .pr_type = SOCK_DGRAM,
+ NETLINK_PROTOSW
};
static struct domain netlinkdomain = {
.dom_family = PF_NETLINK,
.dom_name = "netlink",
.dom_flags = DOMF_UNLOADABLE,
- .dom_nprotosw = 1,
- .dom_protosw = { &netlinksw },
+ .dom_nprotosw = 2,
+ .dom_protosw = { &netlink_raw_sw, &netlink_dgram_sw },
};
DOMAIN_SET(netlink);