Module Name:    src
Committed By:   maxv
Date:           Tue Feb 27 14:44:10 UTC 2018

Modified Files:
        src/sys/netinet: in_pcb.c ip_output.c sctp_pcb.c
        src/sys/netinet6: in6_pcb.c ip6_output.c
        src/sys/netipsec: ipsec.c ipsec.h ipsec6.h

Log Message:
Dedup: merge

        ipsec4_get_policy and ipsec6_get_policy
        ipsec4_delete_pcbpolicy and ipsec6_delete_pcbpolicy

The already-existing ipsec_get_policy() function is inlined in the new
one.


To generate a diff of this commit:
cvs rdiff -u -r1.181 -r1.182 src/sys/netinet/in_pcb.c
cvs rdiff -u -r1.295 -r1.296 src/sys/netinet/ip_output.c
cvs rdiff -u -r1.15 -r1.16 src/sys/netinet/sctp_pcb.c
cvs rdiff -u -r1.164 -r1.165 src/sys/netinet6/in6_pcb.c
cvs rdiff -u -r1.201 -r1.202 src/sys/netinet6/ip6_output.c
cvs rdiff -u -r1.143 -r1.144 src/sys/netipsec/ipsec.c
cvs rdiff -u -r1.69 -r1.70 src/sys/netipsec/ipsec.h
cvs rdiff -u -r1.24 -r1.25 src/sys/netipsec/ipsec6.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/in_pcb.c
diff -u src/sys/netinet/in_pcb.c:1.181 src/sys/netinet/in_pcb.c:1.182
--- src/sys/netinet/in_pcb.c:1.181	Mon Jan  1 00:51:36 2018
+++ src/sys/netinet/in_pcb.c	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: in_pcb.c,v 1.181 2018/01/01 00:51:36 christos Exp $	*/
+/*	$NetBSD: in_pcb.c,v 1.182 2018/02/27 14:44:10 maxv Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -93,7 +93,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.181 2018/01/01 00:51:36 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.182 2018/02/27 14:44:10 maxv Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -628,7 +628,7 @@ in_pcbdetach(void *v)
 
 #if defined(IPSEC)
 	if (ipsec_enabled)
-		ipsec4_delete_pcbpolicy(inp);
+		ipsec_delete_pcbpolicy(inp);
 #endif
 	so->so_pcb = NULL;
 

Index: src/sys/netinet/ip_output.c
diff -u src/sys/netinet/ip_output.c:1.295 src/sys/netinet/ip_output.c:1.296
--- src/sys/netinet/ip_output.c:1.295	Mon Feb 12 18:19:12 2018
+++ src/sys/netinet/ip_output.c	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_output.c,v 1.295 2018/02/12 18:19:12 christos Exp $	*/
+/*	$NetBSD: ip_output.c,v 1.296 2018/02/27 14:44:10 maxv Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.295 2018/02/12 18:19:12 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.296 2018/02/27 14:44:10 maxv Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -1384,7 +1384,7 @@ ip_ctloutput(int op, struct socket *so, 
 			struct mbuf *m = NULL;
 
 			/* XXX this will return EINVAL as sopt is empty */
-			error = ipsec4_get_policy(inp, sopt->sopt_data,
+			error = ipsec_get_policy(inp, sopt->sopt_data,
 			    sopt->sopt_size, &m);
 			if (error == 0)
 				error = sockopt_setmbuf(sopt, m);

Index: src/sys/netinet/sctp_pcb.c
diff -u src/sys/netinet/sctp_pcb.c:1.15 src/sys/netinet/sctp_pcb.c:1.16
--- src/sys/netinet/sctp_pcb.c:1.15	Tue Oct 17 19:23:42 2017
+++ src/sys/netinet/sctp_pcb.c	Tue Feb 27 14:44:10 2018
@@ -1,5 +1,5 @@
 /* $KAME: sctp_pcb.c,v 1.39 2005/06/16 18:29:25 jinmei Exp $ */
-/* $NetBSD: sctp_pcb.c,v 1.15 2017/10/17 19:23:42 rjs Exp $ */
+/* $NetBSD: sctp_pcb.c,v 1.16 2018/02/27 14:44:10 maxv Exp $ */
 
 /*
  * Copyright (c) 2001, 2002, 2003, 2004 Cisco Systems, Inc.
@@ -33,7 +33,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sctp_pcb.c,v 1.15 2017/10/17 19:23:42 rjs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sctp_pcb.c,v 1.16 2018/02/27 14:44:10 maxv Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -2153,7 +2153,7 @@ sctp_inpcb_free(struct sctp_inpcb *inp, 
 	/* First take care of socket level things */
 #ifdef IPSEC
 		if (ipsec_enabled)
-			ipsec4_delete_pcbpolicy(ip_pcb);
+			ipsec_delete_pcbpolicy(ip_pcb);
 #endif /*IPSEC*/
 		so->so_pcb = 0;
 	}

Index: src/sys/netinet6/in6_pcb.c
diff -u src/sys/netinet6/in6_pcb.c:1.164 src/sys/netinet6/in6_pcb.c:1.165
--- src/sys/netinet6/in6_pcb.c:1.164	Thu Feb  8 09:05:20 2018
+++ src/sys/netinet6/in6_pcb.c	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6_pcb.c,v 1.164 2018/02/08 09:05:20 dholland Exp $	*/
+/*	$NetBSD: in6_pcb.c,v 1.165 2018/02/27 14:44:10 maxv Exp $	*/
 /*	$KAME: in6_pcb.c,v 1.84 2001/02/08 18:02:08 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in6_pcb.c,v 1.164 2018/02/08 09:05:20 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in6_pcb.c,v 1.165 2018/02/27 14:44:10 maxv Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -628,7 +628,7 @@ in6_pcbdetach(struct in6pcb *in6p)
 
 #if defined(IPSEC)
 	if (ipsec_enabled)
-		ipsec6_delete_pcbpolicy(in6p);
+		ipsec_delete_pcbpolicy(in6p);
 #endif
 	so->so_pcb = NULL;
 

Index: src/sys/netinet6/ip6_output.c
diff -u src/sys/netinet6/ip6_output.c:1.201 src/sys/netinet6/ip6_output.c:1.202
--- src/sys/netinet6/ip6_output.c:1.201	Mon Feb 12 12:52:12 2018
+++ src/sys/netinet6/ip6_output.c	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_output.c,v 1.201 2018/02/12 12:52:12 maxv Exp $	*/
+/*	$NetBSD: ip6_output.c,v 1.202 2018/02/27 14:44:10 maxv Exp $	*/
 /*	$KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.201 2018/02/12 12:52:12 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.202 2018/02/27 14:44:10 maxv Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -1980,7 +1980,7 @@ else 					\
 				 * XXX: this will return EINVAL as sopt is
 				 * empty
 				 */
-				error = ipsec6_get_policy(in6p, sopt->sopt_data,
+				error = ipsec_get_policy(in6p, sopt->sopt_data,
 				    sopt->sopt_size, &m);
 				if (!error)
 					error = sockopt_setmbuf(sopt, m);

Index: src/sys/netipsec/ipsec.c
diff -u src/sys/netipsec/ipsec.c:1.143 src/sys/netipsec/ipsec.c:1.144
--- src/sys/netipsec/ipsec.c:1.143	Tue Feb 27 13:36:21 2018
+++ src/sys/netipsec/ipsec.c	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ipsec.c,v 1.143 2018/02/27 13:36:21 maxv Exp $ */
+/* $NetBSD: ipsec.c,v 1.144 2018/02/27 14:44:10 maxv Exp $ */
 /* $FreeBSD: src/sys/netipsec/ipsec.c,v 1.2.2.2 2003/07/01 01:38:13 sam Exp $ */
 /* $KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $ */
 
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.143 2018/02/27 13:36:21 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.144 2018/02/27 14:44:10 maxv Exp $");
 
 /*
  * IPsec controller part.
@@ -187,7 +187,6 @@ static struct secpolicy *ipsec_deepcopy_
 #endif
 static int ipsec_set_policy(struct secpolicy **, int, const void *, size_t,
     kauth_cred_t);
-static int ipsec_get_policy(struct secpolicy *, struct mbuf **);
 static void ipsec_destroy_policy(struct secpolicy *);
 static int ipsec_sp_reject(const struct secpolicy *, const struct mbuf *);
 static void vshiftl(unsigned char *, int, int);
@@ -1331,28 +1330,6 @@ ipsec_set_policy(struct secpolicy **poli
 	return 0;
 }
 
-static int
-ipsec_get_policy(struct secpolicy *policy, struct mbuf **mp)
-{
-
-	/* sanity check. */
-	if (policy == NULL || mp == NULL)
-		return EINVAL;
-
-	*mp = key_sp2msg(policy, M_NOWAIT);
-	if (!*mp) {
-		IPSECLOG(LOG_DEBUG, "No more memory.\n");
-		return ENOBUFS;
-	}
-
-	(*mp)->m_type = MT_DATA;
-	if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DUMP)) {
-		kdebug_mbuf(__func__, *mp);
-	}
-
-	return 0;
-}
-
 int
 ipsec4_set_policy(struct inpcb *inp, int optname, const void *request,
     size_t len, kauth_cred_t cred)
@@ -1390,7 +1367,7 @@ ipsec4_set_policy(struct inpcb *inp, int
 }
 
 int
-ipsec4_get_policy(struct inpcb *inp, const void *request, size_t len,
+ipsec_get_policy(void *inp, const void *request, size_t len,
     struct mbuf **mp)
 {
 	struct inpcb_hdr *inph = (struct inpcb_hdr *)inp;
@@ -1419,11 +1396,26 @@ ipsec4_get_policy(struct inpcb *inp, con
 		return EINVAL;
 	}
 
-	return ipsec_get_policy(policy, mp);
+	/* sanity check. */
+	if (policy == NULL || mp == NULL)
+		return EINVAL;
+
+	*mp = key_sp2msg(policy, M_NOWAIT);
+	if (!*mp) {
+		IPSECLOG(LOG_DEBUG, "No more memory.\n");
+		return ENOBUFS;
+	}
+
+	(*mp)->m_type = MT_DATA;
+	if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DUMP)) {
+		kdebug_mbuf(__func__, *mp);
+	}
+
+	return 0;
 }
 
 int
-ipsec4_delete_pcbpolicy(struct inpcb *inp)
+ipsec_delete_pcbpolicy(void *inp)
 {
 	struct inpcb_hdr *inph = (struct inpcb_hdr *)inp;
 
@@ -1480,63 +1472,6 @@ ipsec6_set_policy(struct in6pcb *in6p, i
 
 	return ipsec_set_policy(policy, optname, request, len, cred);
 }
-
-int
-ipsec6_get_policy(struct in6pcb *in6p, const void *request, size_t len,
-    struct mbuf **mp)
-{
-	struct inpcb_hdr *inph = (struct inpcb_hdr *)in6p;
-	const struct sadb_x_policy *xpl;
-	struct secpolicy *policy;
-
-	/* sanity check. */
-	if (inph == NULL || request == NULL || mp == NULL)
-		return EINVAL;
-	KASSERT(inph->inph_sp != NULL);
-	if (len < sizeof(*xpl))
-		return EINVAL;
-	xpl = (const struct sadb_x_policy *)request;
-
-	/* select direction */
-	switch (xpl->sadb_x_policy_dir) {
-	case IPSEC_DIR_INBOUND:
-		policy = inph->inph_sp->sp_in;
-		break;
-	case IPSEC_DIR_OUTBOUND:
-		policy = inph->inph_sp->sp_out;
-		break;
-	default:
-		IPSECLOG(LOG_ERR, "invalid direction=%u\n",
-		    xpl->sadb_x_policy_dir);
-		return EINVAL;
-	}
-
-	return ipsec_get_policy(policy, mp);
-}
-
-int
-ipsec6_delete_pcbpolicy(struct in6pcb *in6p)
-{
-	struct inpcb_hdr *inph = (struct inpcb_hdr *)in6p;
-
-	KASSERT(inph != NULL);
-
-	if (inph->inph_sp == NULL)
-		return 0;
-
-	if (inph->inph_sp->sp_in != NULL)
-		ipsec_destroy_policy(inph->inph_sp->sp_in);
-
-	if (inph->inph_sp->sp_out != NULL)
-		ipsec_destroy_policy(inph->inph_sp->sp_out);
-
-	ipsec_invalpcbcache(inph->inph_sp, IPSEC_DIR_ANY);
-
-	ipsec_delpcbpolicy(inph->inph_sp);
-	inph->inph_sp = NULL;
-
-	return 0;
-}
 #endif
 
 /*

Index: src/sys/netipsec/ipsec.h
diff -u src/sys/netipsec/ipsec.h:1.69 src/sys/netipsec/ipsec.h:1.70
--- src/sys/netipsec/ipsec.h:1.69	Mon Feb 26 09:04:29 2018
+++ src/sys/netipsec/ipsec.h	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ipsec.h,v 1.69 2018/02/26 09:04:29 maxv Exp $	*/
+/*	$NetBSD: ipsec.h,v 1.70 2018/02/27 14:44:10 maxv Exp $	*/
 /*	$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netipsec/ipsec.h,v 1.2.4.2 2004/02/14 22:23:23 bms Exp $	*/
 /*	$KAME: ipsec.h,v 1.53 2001/11/20 08:32:38 itojun Exp $	*/
 
@@ -292,8 +292,8 @@ int ipsec_copy_policy(const struct inpcb
 u_int ipsec_get_reqlevel(const struct ipsecrequest *);
 
 int ipsec4_set_policy(struct inpcb *, int, const void *, size_t, kauth_cred_t);
-int ipsec4_get_policy(struct inpcb *, const void *, size_t, struct mbuf **);
-int ipsec4_delete_pcbpolicy(struct inpcb *);
+int ipsec_get_policy(void *, const void *, size_t, struct mbuf **);
+int ipsec_delete_pcbpolicy(void *);
 int ipsec_in_reject(struct mbuf *, void *);
 
 struct secasvar *ipsec_lookup_sa(const struct ipsecrequest *,

Index: src/sys/netipsec/ipsec6.h
diff -u src/sys/netipsec/ipsec6.h:1.24 src/sys/netipsec/ipsec6.h:1.25
--- src/sys/netipsec/ipsec6.h:1.24	Mon Feb 26 09:04:29 2018
+++ src/sys/netipsec/ipsec6.h	Tue Feb 27 14:44:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ipsec6.h,v 1.24 2018/02/26 09:04:29 maxv Exp $	*/
+/*	$NetBSD: ipsec6.h,v 1.25 2018/02/27 14:44:10 maxv Exp $	*/
 /*	$FreeBSD: src/sys/netipsec/ipsec6.h,v 1.1.4.1 2003/01/24 05:11:35 sam Exp $	*/
 /*	$KAME: ipsec.h,v 1.44 2001/03/23 08:08:47 itojun Exp $	*/
 
@@ -53,9 +53,7 @@ extern struct secpolicy ip6_def_policy;
 struct inpcb;
 struct in6pcb;
 
-int ipsec6_delete_pcbpolicy(struct in6pcb *);
 int ipsec6_set_policy(struct in6pcb *, int, const void *, size_t, kauth_cred_t);
-int ipsec6_get_policy(struct in6pcb *, const void *, size_t, struct mbuf **);
 struct secpolicy *ipsec6_check_policy(struct mbuf *, 
     struct in6pcb *, int, int*,int*);
 

Reply via email to