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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to