| version 1.8.2.4, 2001/02/11 19:17:25 |
version 1.8.2.5, 2001/03/12 13:31:55 |
|
|
| /* $NetBSD$ */ |
/* $NetBSD$ */ |
| /* $KAME: ip6_input.c,v 1.174 2001/02/09 06:17:41 jinmei Exp $ */ |
/* $KAME: ip6_input.c,v 1.183 2001/03/01 15:15:23 itojun Exp $ */ |
| |
|
| /* |
/* |
| * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
|
|
| #include <netinet6/nd6.h> |
#include <netinet6/nd6.h> |
| #include <netinet6/in6_prefix.h> |
#include <netinet6/in6_prefix.h> |
| |
|
| |
#ifdef IPSEC |
| |
#include <netinet6/ipsec.h> |
| |
#endif |
| |
|
| #include <netinet6/ip6protosw.h> |
#include <netinet6/ip6protosw.h> |
| |
|
| /* we need it for NLOOP. */ |
/* we need it for NLOOP. */ |
|
|
| goto bad; |
goto bad; |
| } |
} |
| |
|
| |
#ifdef IPSEC |
| |
/* |
| |
* enforce IPsec policy checking if we are seeing last header. |
| |
* note that we do not visit this with protocols with pcb layer |
| |
* code - like udp/tcp/raw ip. |
| |
*/ |
| |
if ((inet6sw[ip6_protox[nxt]].pr_flags & PR_LASTHDR) != 0 && |
| |
ipsec6_in_reject(m, NULL)) { |
| |
ipsec6stat.in_polvio++; |
| |
goto bad; |
| |
} |
| |
#endif |
| |
|
| nxt = (*inet6sw[ip6_protox[nxt]].pr_input)(&m, &off, nxt); |
nxt = (*inet6sw[ip6_protox[nxt]].pr_input)(&m, &off, nxt); |
| } |
} |
| return; |
return; |
| Line 1162 ip6_savecontrol(in6p, mp, ip6, m) |
|
| Line 1179 ip6_savecontrol(in6p, mp, ip6, m) |
|
| nxt = ip6e->ip6e_nxt; |
nxt = ip6e->ip6e_nxt; |
| } |
} |
| loopend: |
loopend: |
| |
; |
| } |
} |
| if ((in6p->in6p_flags & IN6P_HOPOPTS) && privileged) { |
if ((in6p->in6p_flags & IN6P_HOPOPTS) && privileged) { |
| /* to be done */ |
/* to be done */ |