version 1.8.2.5, 2001/03/12 13:31:55 |
version 1.35, 2001/02/10 04:14:28 |
|
|
/* $NetBSD$ */ |
/* $NetBSD$ */ |
/* $KAME: ip6_input.c,v 1.183 2001/03/01 15:15:23 itojun Exp $ */ |
/* $KAME: ip6_input.c,v 1.174 2001/02/09 06:17:41 jinmei 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 1179 ip6_savecontrol(in6p, mp, ip6, m) |
|
Line 1162 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 */ |