git: 9front

Download patch

ref: fa093f25db894cb14c404862e3d5dd3a0eb5e217
parent: ce1064ad17365ae57b9314d3ec1330557f67da29
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Aug 30 17:17:54 EDT 2018

arp: interface address only specifies the interface, not the source address for route lookup

--- a/sys/src/9/ip/arp.c
+++ b/sys/src/9/ip/arp.c
@@ -401,7 +401,7 @@
 		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");
 		}
--