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-all
mailing list