svn commit: r310408 - projects/ipsec/sys/netipsec
Andrey V. Elsukov
ae at FreeBSD.org
Thu Dec 22 14:11:41 UTC 2016
Author: ae
Date: Thu Dec 22 14:11:39 2016
New Revision: 310408
URL: https://svnweb.freebsd.org/changeset/base/310408
Log:
Make ipsec_control_pcbpolicy() static and implement IPSEC_PCBCTL()
method for IPv4 and IPv6.
Modified:
projects/ipsec/sys/netipsec/ipsec_pcb.c
Modified: projects/ipsec/sys/netipsec/ipsec_pcb.c
==============================================================================
--- projects/ipsec/sys/netipsec/ipsec_pcb.c Thu Dec 22 14:09:01 2016 (r310407)
+++ projects/ipsec/sys/netipsec/ipsec_pcb.c Thu Dec 22 14:11:39 2016 (r310408)
@@ -27,6 +27,10 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_inet.h"
+#include "opt_inet6.h"
+#include "opt_ipsec.h"
+
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -43,9 +47,12 @@ __FBSDID("$FreeBSD$");
#include <netinet/in_pcb.h>
#include <netipsec/ipsec.h>
+#include <netipsec/ipsec_support.h>
#include <netipsec/key.h>
#include <netipsec/key_debug.h>
+MALLOC_DEFINE(M_IPSEC_INPCB, "inpcbpolicy", "inpcb-resident ipsec policy");
+
/* Initialize PCB policy. */
int
ipsec_init_pcbpolicy(struct inpcb *inp)
@@ -288,7 +295,7 @@ ipsec_get_pcbpolicy(struct inpcb *inp, v
}
/* Handle socket option control request for PCB */
-int
+static int
ipsec_control_pcbpolicy(struct inpcb *inp, struct sockopt *sopt)
{
void *optdata;
@@ -327,3 +334,31 @@ ipsec_control_pcbpolicy(struct inpcb *in
return (error);
}
+#ifdef INET
+/*
+ * IPSEC_PCBCTL() method implementation for IPv4.
+ */
+int
+ipsec4_pcbctl(struct inpcb *inp, struct sockopt *sopt)
+{
+
+ if (sopt->sopt_name != IP_IPSEC_POLICY)
+ return (ENOPROTOOPT);
+ return (ipsec_control_pcbpolicy(inp, sopt));
+}
+#endif
+
+#ifdef INET6
+/*
+ * IPSEC_PCBCTL() method implementation for IPv6.
+ */
+int
+ipsec6_pcbctl(struct inpcb *inp, struct sockopt *sopt)
+{
+
+ if (sopt->sopt_name != IPV6_IPSEC_POLICY)
+ return (ENOPROTOOPT);
+ return (ipsec_control_pcbpolicy(inp, sopt));
+}
+#endif
+
More information about the svn-src-projects
mailing list