| version 1.201, 2004/05/01 02:20:42 |
version 1.202, 2004/05/02 05:02:53 |
| Line 738 ip_input(struct mbuf *m) |
|
| Line 738 ip_input(struct mbuf *m) |
|
| #ifdef MROUTING |
#ifdef MROUTING |
| extern struct socket *ip_mrouter; |
extern struct socket *ip_mrouter; |
| |
|
| if (M_READONLY(m)) { |
|
| if ((m = m_pullup(m, hlen)) == 0) { |
|
| ipstat.ips_toosmall++; |
|
| return; |
|
| } |
|
| ip = mtod(m, struct ip *); |
|
| } |
|
| |
|
| if (ip_mrouter) { |
if (ip_mrouter) { |
| /* |
/* |
| * If we are acting as a multicast router, all |
* If we are acting as a multicast router, all |
|
|
| * but it's not worth the time; just let them time out.) |
* but it's not worth the time; just let them time out.) |
| */ |
*/ |
| if (ip->ip_off & ~htons(IP_DF|IP_RF)) { |
if (ip->ip_off & ~htons(IP_DF|IP_RF)) { |
| if (M_READONLY(m)) { |
|
| if ((m = m_pullup(m, hlen)) == NULL) { |
|
| ipstat.ips_toosmall++; |
|
| goto bad; |
|
| } |
|
| ip = mtod(m, struct ip *); |
|
| } |
|
| |
|
| /* |
/* |
| * Look for queue of fragments |
* Look for queue of fragments |