diff options
| author | itojun <itojun@NetBSD.org> | 2002-08-14 00:23:27 +0000 |
|---|---|---|
| committer | itojun <itojun@NetBSD.org> | 2002-08-14 00:23:27 +0000 |
| commit | c00fa8dfd94473cd4d82faf337bc894fd05b1788 (patch) | |
| tree | aed1c45a959ac358e9e677f0a0eb639a23390106 /sys/netinet6/ipsec.c | |
| parent | f5435ff1382d4883cd1fc56ae5cdd40fff8de1fd (diff) | |
avoid swapping endian of ip_len and ip_off on mbuf, to meet with M_LEADINGSPACE
optimization made last year. should solve PR 17867 and 10195.
IP_HDRINCL behavior of raw ip socket is kept unchanged. we may want to
provide IP_HDRINCL variant that does not swap endian.
Diffstat (limited to 'sys/netinet6/ipsec.c')
| -rw-r--r-- | sys/netinet6/ipsec.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/netinet6/ipsec.c b/sys/netinet6/ipsec.c index 315460172b8..8a1e0f66aaf 100644 --- a/sys/netinet6/ipsec.c +++ b/sys/netinet6/ipsec.c @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec.c,v 1.64 2002/08/01 05:17:47 itojun Exp $ */ +/* $NetBSD: ipsec.c,v 1.65 2002/08/14 00:23:39 itojun Exp $ */ /* $KAME: ipsec.c,v 1.136 2002/05/19 00:36:39 itojun Exp $ */ /* @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.64 2002/08/01 05:17:47 itojun Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.65 2002/08/14 00:23:39 itojun Exp $"); #include "opt_inet.h" #include "opt_ipsec.h" @@ -894,8 +894,7 @@ ipsec4_get_ulp(m, spidx, needport) ((struct sockaddr_in *)&spidx->dst)->sin_port = IPSEC_PORT_ANY; m_copydata(m, 0, sizeof(ip), (caddr_t)&ip); - /* ip_input() flips it into host endian XXX need more checking */ - if (ip.ip_off & (IP_MF | IP_OFFMASK)) + if (ip.ip_off & htons(IP_MF | IP_OFFMASK)) return; nxt = ip.ip_p; @@ -2087,7 +2086,7 @@ ipsec4_encapsulate(m, sav) ip->ip_len = htons(plen + sizeof(struct ip)); else { ipseclog((LOG_ERR, "IPv4 ipsec: size exceeds limit: " - "leave ip_len as is (invalid packet)\n")); + "leave ip_len as is (invalid packet)\n")); } ip->ip_id = htons(ip_id++); bcopy(&((struct sockaddr_in *)&sav->sah->saidx.src)->sin_addr, |
