patch-2.1.25 linux/net/ipv4/arp.c
Next file: linux/net/ipv4/fib.c
Previous file: linux/net/ipv4/af_inet.c
Back to the patch index
Back to the overall index
- Lines: 23
- Date:
Sun Feb 2 15:18:49 1997
- Orig file:
v2.1.24/linux/net/ipv4/arp.c
- Orig date:
Tue Jan 28 18:50:58 1997
diff -u --recursive --new-file v2.1.24/linux/net/ipv4/arp.c linux/net/ipv4/arp.c
@@ -1552,7 +1552,7 @@
}
start_bh_atomic();
- arp_update(sip, sha, dev, 0, !RT_LOCALADDR(rt->rt_flags));
+ arp_update(sip, sha, dev, 0, !RT_LOCALADDR(rt->rt_flags) && dev->type != ARPHRD_METRICOM);
end_bh_atomic();
kfree_skb(skb, FREE_READ);
return 0;
@@ -1617,6 +1617,13 @@
if (!dev)
dev = rt->u.dst.dev;
if (rt->rt_flags&(RTF_LOCAL|RTF_BROADCAST|RTF_MULTICAST|RTCF_NAT)) {
+ if (rt->rt_flags&RTF_BROADCAST &&
+ dev->type == ARPHRD_METRICOM &&
+ r->arp_ha.sa_family == ARPHRD_METRICOM) {
+ memcpy(dev->broadcast, r->arp_ha.sa_data, dev->addr_len);
+ ip_rt_put(rt);
+ return 0;
+ }
ip_rt_put(rt);
return -EINVAL;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov