version 1.158.2.3, 2007/10/09 13:44:52 |
version 1.159, 2007/05/12 02:03:15 |
Line 617 udp4_sendup(struct mbuf *m, int off /* o |
|
Line 617 udp4_sendup(struct mbuf *m, int off /* o |
|
/* check AH/ESP integrity. */ |
/* check AH/ESP integrity. */ |
if (so != NULL && ipsec4_in_reject_so(m, so)) { |
if (so != NULL && ipsec4_in_reject_so(m, so)) { |
ipsecstat.in_polvio++; |
ipsecstat.in_polvio++; |
if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) |
if ((n = m_copy(m, 0, M_COPYALL)) != NULL) |
icmp_error(n, ICMP_UNREACH, ICMP_UNREACH_ADMIN_PROHIBIT, |
icmp_error(n, ICMP_UNREACH, ICMP_UNREACH_ADMIN_PROHIBIT, |
0, 0); |
0, 0); |
return; |
return; |
} |
} |
#endif /*IPSEC*/ |
#endif /*IPSEC*/ |
|
|
if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) { |
if ((n = m_copy(m, 0, M_COPYALL)) != NULL) { |
if (inp && (inp->inp_flags & INP_CONTROLOPTS |
if (inp && (inp->inp_flags & INP_CONTROLOPTS |
|| so->so_options & SO_TIMESTAMP)) { |
|| so->so_options & SO_TIMESTAMP)) { |
struct ip *ip = mtod(n, struct ip *); |
struct ip *ip = mtod(n, struct ip *); |
Line 664 udp6_sendup(struct mbuf *m, int off /* o |
|
Line 664 udp6_sendup(struct mbuf *m, int off /* o |
|
/* check AH/ESP integrity. */ |
/* check AH/ESP integrity. */ |
if (so != NULL && ipsec6_in_reject_so(m, so)) { |
if (so != NULL && ipsec6_in_reject_so(m, so)) { |
ipsec6stat.in_polvio++; |
ipsec6stat.in_polvio++; |
if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) |
if ((n = m_copy(m, 0, M_COPYALL)) != NULL) |
icmp6_error(n, ICMP6_DST_UNREACH, |
icmp6_error(n, ICMP6_DST_UNREACH, |
ICMP6_DST_UNREACH_ADMIN, 0); |
ICMP6_DST_UNREACH_ADMIN, 0); |
return; |
return; |
} |
} |
#endif /*IPSEC*/ |
#endif /*IPSEC*/ |
|
|
if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) { |
if ((n = m_copy(m, 0, M_COPYALL)) != NULL) { |
if (in6p && (in6p->in6p_flags & IN6P_CONTROLOPTS |
if (in6p && (in6p->in6p_flags & IN6P_CONTROLOPTS |
|| in6p->in6p_socket->so_options & SO_TIMESTAMP)) { |
|| in6p->in6p_socket->so_options & SO_TIMESTAMP)) { |
struct ip6_hdr *ip6 = mtod(n, struct ip6_hdr *); |
struct ip6_hdr *ip6 = mtod(n, struct ip6_hdr *); |
Line 1528 udp4_espinudp(struct mbuf **mp, int off, |
|
Line 1528 udp4_espinudp(struct mbuf **mp, int off, |
|
m_tag_prepend(n, tag); |
m_tag_prepend(n, tag); |
|
|
#ifdef FAST_IPSEC |
#ifdef FAST_IPSEC |
ipsec4_common_input(n, iphdrlen, IPPROTO_ESP); |
ipsec4_common_input(n, iphdrlen); |
#else |
#else |
esp4_input(n, iphdrlen); |
esp4_input(n, iphdrlen); |
#endif |
#endif |