| version 1.129, 2001/03/02 02:05:36 |
version 1.130, 2001/03/02 04:26:10 |
| Line 414 ip_input(struct mbuf *m) |
|
| Line 414 ip_input(struct mbuf *m) |
|
| * not allowed. |
* not allowed. |
| */ |
*/ |
| if (IN_MULTICAST(ip->ip_src.s_addr)) { |
if (IN_MULTICAST(ip->ip_src.s_addr)) { |
| /* XXX stat */ |
ipstat.ips_badaddr++; |
| goto bad; |
goto bad; |
| } |
} |
| |
|
| /* 127/8 must not appear on wire - RFC1122 */ |
/* 127/8 must not appear on wire - RFC1122 */ |
| if ((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET || |
if ((ntohl(ip->ip_dst.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET || |
| (ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) { |
(ntohl(ip->ip_src.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) { |
| if ((m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) == 0) |
if ((m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) == 0) { |
| |
ipstat.ips_badaddr++; |
| goto bad; |
goto bad; |
| |
} |
| } |
} |
| |
|
| if (in_cksum(m, hlen) != 0) { |
if (in_cksum(m, hlen) != 0) { |