| version 1.63, 2003/05/14 14:41:33 |
version 1.64, 2003/06/30 08:00:59 |
|
|
| u_int32_t rtalert = ~0; |
u_int32_t rtalert = ~0; |
| int nxt, ours = 0; |
int nxt, ours = 0; |
| struct ifnet *deliverifp = NULL; |
struct ifnet *deliverifp = NULL; |
| |
int srcrt = 0; |
| |
|
| #ifdef IPSEC |
#ifdef IPSEC |
| /* |
/* |
|
|
| if (1) |
if (1) |
| #endif |
#endif |
| { |
{ |
| |
struct in6_addr odst; |
| |
|
| |
odst = ip6->ip6_dst; |
| if (pfil_run_hooks(&inet6_pfil_hook, &m, m->m_pkthdr.rcvif, |
if (pfil_run_hooks(&inet6_pfil_hook, &m, m->m_pkthdr.rcvif, |
| PFIL_IN) != 0) |
PFIL_IN) != 0) |
| return; |
return; |
| if (m == NULL) |
if (m == NULL) |
| return; |
return; |
| ip6 = mtod(m, struct ip6_hdr *); |
ip6 = mtod(m, struct ip6_hdr *); |
| |
srcrt = !IN6_ARE_ADDR_EQUAL(&odst, &ip6->ip6_dst); |
| } |
} |
| #endif /* PFIL_HOOKS */ |
#endif /* PFIL_HOOKS */ |
| |
|
|
|
| return; |
return; |
| } |
} |
| } else if (!ours) { |
} else if (!ours) { |
| ip6_forward(m, 0); |
ip6_forward(m, srcrt); |
| return; |
return; |
| } |
} |
| |
|