summaryrefslogtreecommitdiff
path: root/sys/src/9/ip/arp.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-08-30 21:17:54 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2018-08-30 21:17:54 +0200
commit11d1947814614220a65bd5cfa7b2b891b7e25646 (patch)
tree7338f9b3d4a1bdc0eca282cffa2d2281257ead0e /sys/src/9/ip/arp.c
parent590bed4bf88b004942dba3c5917b24be50016b78 (diff)
arp: interface address only specifies the interface, not the source address for route lookup
Diffstat (limited to 'sys/src/9/ip/arp.c')
-rw-r--r--sys/src/9/ip/arp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/src/9/ip/arp.c b/sys/src/9/ip/arp.c
index 03897c705..c924f6cb2 100644
--- a/sys/src/9/ip/arp.c
+++ b/sys/src/9/ip/arp.c
@@ -401,7 +401,7 @@ arpwrite(Fs *fs, char *s, int len)
if((ifc = findipifc(fs, ia, ia, Runi)) == nil)
error("no interface");
rlock(ifc);
- if(arpenter(fs, V6, ip, mac, n, ia, ifc, 0) < 0){
+ if(!ipv6local(ifc, ia, ip) || arpenter(fs, V6, ip, mac, n, ia, ifc, 0) < 0){
runlock(ifc);
error("destination unreachable");
}