| version 1.104, 2008/04/07 06:31:28 |
version 1.105, 2008/04/12 05:58:22 |
| Line 86 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| Line 86 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| #include <netinet/in_systm.h> |
#include <netinet/in_systm.h> |
| #include <netinet/ip.h> |
#include <netinet/ip.h> |
| #include <netinet/ip_var.h> |
#include <netinet/ip_var.h> |
| |
#include <netinet/ip_private.h> |
| #include <netinet/ip_mroute.h> |
#include <netinet/ip_mroute.h> |
| #include <netinet/ip_icmp.h> |
#include <netinet/ip_icmp.h> |
| #include <netinet/in_pcb.h> |
#include <netinet/in_pcb.h> |
| Line 215 rip_input(struct mbuf *m, ...) |
|
| Line 216 rip_input(struct mbuf *m, ...) |
|
| if (last != NULL && ipsec4_in_reject_so(m, last->inp_socket)) { |
if (last != NULL && ipsec4_in_reject_so(m, last->inp_socket)) { |
| m_freem(m); |
m_freem(m); |
| ipsecstat.in_polvio++; |
ipsecstat.in_polvio++; |
| ipstat[IP_STAT_DELIVERED]--; |
IP_STATDEC(IP_STAT_DELIVERED); |
| /* do not inject data to pcb */ |
/* do not inject data to pcb */ |
| } else |
} else |
| #endif /*IPSEC*/ |
#endif /*IPSEC*/ |
| if (last != NULL) |
if (last != NULL) |
| rip_sbappendaddr(last, ip, sintosa(&ripsrc), hlen, opts, m); |
rip_sbappendaddr(last, ip, sintosa(&ripsrc), hlen, opts, m); |
| else if (inetsw[ip_protox[ip->ip_p]].pr_input == rip_input) { |
else if (inetsw[ip_protox[ip->ip_p]].pr_input == rip_input) { |
| |
uint64_t *ips; |
| |
|
| icmp_error(m, ICMP_UNREACH, ICMP_UNREACH_PROTOCOL, |
icmp_error(m, ICMP_UNREACH, ICMP_UNREACH_PROTOCOL, |
| 0, 0); |
0, 0); |
| ipstat[IP_STAT_NOPROTO]++; |
ips = IP_STAT_GETREF(); |
| ipstat[IP_STAT_DELIVERED]--; |
ips[IP_STAT_NOPROTO]++; |
| |
ips[IP_STAT_DELIVERED]--; |
| |
IP_STAT_PUTREF(); |
| } else |
} else |
| m_freem(m); |
m_freem(m); |
| return; |
return; |
| Line 363 rip_output(struct mbuf *m, ...) |
|
| Line 368 rip_output(struct mbuf *m, ...) |
|
| opts = NULL; |
opts = NULL; |
| /* XXX prevent ip_output from overwriting header fields */ |
/* XXX prevent ip_output from overwriting header fields */ |
| flags |= IP_RAWOUTPUT; |
flags |= IP_RAWOUTPUT; |
| ipstat[IP_STAT_RAWOUT]++; |
IP_STATINC(IP_STAT_RAWOUT); |
| } |
} |
| return (ip_output(m, opts, &inp->inp_route, flags, inp->inp_moptions, |
return (ip_output(m, opts, &inp->inp_route, flags, inp->inp_moptions, |
| inp->inp_socket, &inp->inp_errormtu)); |
inp->inp_socket, &inp->inp_errormtu)); |