svn commit: r186528 - head/sys/netipsec

Bjoern A. Zeeb bz at FreeBSD.org
Sat Dec 27 20:37:54 UTC 2008


Author: bz
Date: Sat Dec 27 20:37:53 2008
New Revision: 186528
URL: http://svn.freebsd.org/changeset/base/186528

Log:
  Rewrite ipsec6_setspidx_inpcb() to match the logic in the
  (now) equivalent IPv4 counterpart.
  
  MFC after:	4 weeks

Modified:
  head/sys/netipsec/ipsec.c

Modified: head/sys/netipsec/ipsec.c
==============================================================================
--- head/sys/netipsec/ipsec.c	Sat Dec 27 19:42:59 2008	(r186527)
+++ head/sys/netipsec/ipsec.c	Sat Dec 27 20:37:53 2008	(r186528)
@@ -576,8 +576,6 @@ ipsec6_setspidx_inpcb(m, pcb)
 	struct mbuf *m;
 	struct inpcb *pcb;
 {
-	//INIT_VNET_IPSEC(curvnet);
-	struct secpolicyindex *spidx;
 	int error;
 
 	IPSEC_ASSERT(pcb != NULL, ("null pcb"));
@@ -585,26 +583,18 @@ ipsec6_setspidx_inpcb(m, pcb)
 	IPSEC_ASSERT(pcb->inp_sp->sp_out != NULL && pcb->inp_sp->sp_in != NULL,
 		("null sp_in || sp_out"));
 
-	bzero(&pcb->inp_sp->sp_in->spidx, sizeof(*spidx));
-	bzero(&pcb->inp_sp->sp_out->spidx, sizeof(*spidx));
-
-	spidx = &pcb->inp_sp->sp_in->spidx;
-	error = ipsec_setspidx(m, spidx, 1);
-	if (error)
-		goto bad;
-	spidx->dir = IPSEC_DIR_INBOUND;
-
-	spidx = &pcb->inp_sp->sp_out->spidx;
-	error = ipsec_setspidx(m, spidx, 1);
-	if (error)
-		goto bad;
-	spidx->dir = IPSEC_DIR_OUTBOUND;
-
-	return 0;
+	error = ipsec_setspidx(m, &pcb->inp_sp->sp_in->spidx, 1);
+	if (error == 0) {
+		pcb->inp_sp->sp_in->spidx.dir = IPSEC_DIR_INBOUND;
+		pcb->inp_sp->sp_out->spidx = pcb->inp_sp->sp_in->spidx;
+		pcb->inp_sp->sp_out->spidx.dir = IPSEC_DIR_OUTBOUND;
+	} else {
+		bzero(&pcb->inp_sp->sp_in->spidx,
+		    sizeof(pcb->inp_sp->sp_in->spidx));
+		bzero(&pcb->inp_sp->sp_out->spidx,
+		    sizeof(pcb->inp_sp->sp_in->spidx));
+	}
 
-bad:
-	bzero(&pcb->inp_sp->sp_in->spidx, sizeof(*spidx));
-	bzero(&pcb->inp_sp->sp_out->spidx, sizeof(*spidx));
 	return error;
 }
 #endif


More information about the svn-src-head mailing list