Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/ip_input.c,v retrieving revision 1.94 retrieving revision 1.95 diff -u -p -r1.94 -r1.95 --- src/sys/netinet/ip_input.c 1999/10/26 09:53:17 1.94 +++ src/sys/netinet/ip_input.c 2000/01/31 14:18:54 1.95 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.94 1999/10/26 09:53:17 itojun Exp $ */ +/* $NetBSD: ip_input.c,v 1.95 2000/01/31 14:18:54 itojun Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -1430,18 +1430,21 @@ ip_forward(m, srcrt) if (ipforward_rt.ro_rt) { struct secpolicy *sp; int ipsecerror; - int ipsechdr; + size_t ipsechdr; struct route *ro; sp = ipsec4_getpolicybyaddr(mcopy, - IP_FORWARDING, - &ipsecerror); + IPSEC_DIR_OUTBOUND, + IP_FORWARDING, + &ipsecerror); if (sp == NULL) destifp = ipforward_rt.ro_rt->rt_ifp; else { /* count IPsec header size */ - ipsechdr = ipsec4_hdrsiz(mcopy, NULL); + ipsechdr = ipsec4_hdrsiz(mcopy, + IPSEC_DIR_OUTBOUND, + NULL); /* * find the correct route for outer IPv4 @@ -1454,8 +1457,9 @@ ip_forward(m, srcrt) /*XXX*/ destifp = NULL; if (sp->req != NULL - && sp->req->sa != NULL) { - ro = &sp->req->sa->saidx->sa_route; + && sp->req->sav != NULL + && sp->req->sav->sah != NULL) { + ro = &sp->req->sav->sah->sa_route; if (ro->ro_rt && ro->ro_rt->rt_ifp) { dummyifp.if_mtu = ro->ro_rt->rt_ifp->if_mtu;