version 1.82, 1999/03/27 01:24:49 |
version 1.87, 1999/05/04 20:13:09 |
|
|
} |
} |
ip = mtod(m, struct ip *); |
ip = mtod(m, struct ip *); |
} |
} |
|
/* |
|
* we drop packets that have a multicast address as source |
|
* as wanted by rfc 1112 |
|
*/ |
|
if (IN_MULTICAST(ip->ip_src.s_addr)) { |
|
goto bad; |
|
} |
|
|
if (in_cksum(m, hlen) != 0) { |
if (in_cksum(m, hlen) != 0) { |
ipstat.ips_badsum++; |
ipstat.ips_badsum++; |
goto bad; |
goto bad; |
|
|
/* |
/* |
* Check for additional length bogosity |
* Check for additional length bogosity |
*/ |
*/ |
if (len < hlen) |
if (len < hlen) { |
{ |
|
ipstat.ips_badlen++; |
ipstat.ips_badlen++; |
goto bad; |
goto bad; |
} |
} |
|
|
* Check our list of addresses, to see if the packet is for us. |
* Check our list of addresses, to see if the packet is for us. |
*/ |
*/ |
INADDR_TO_IA(ip->ip_dst, ia); |
INADDR_TO_IA(ip->ip_dst, ia); |
if (ia != NULL) goto ours; |
if (ia != NULL) |
|
goto ours; |
if (m->m_pkthdr.rcvif->if_flags & IFF_BROADCAST) { |
if (m->m_pkthdr.rcvif->if_flags & IFF_BROADCAST) { |
for (ifa = m->m_pkthdr.rcvif->if_addrlist.tqh_first; |
for (ifa = m->m_pkthdr.rcvif->if_addrlist.tqh_first; |
ifa != NULL; ifa = ifa->ifa_list.tqe_next) { |
ifa != NULL; ifa = ifa->ifa_list.tqe_next) { |