diff --git a/sys/src/9/ip/rudp.c b/sys/src/9/ip/rudp.c index 9b6c96438..c374f6abc 100644 --- a/sys/src/9/ip/rudp.c +++ b/sys/src/9/ip/rudp.c @@ -552,7 +552,9 @@ rudpiput(Proto *rudp, Ipifc *ifc, Block *bp) p = bp->rp; ipmove(p, raddr); p += IPaddrlen; ipmove(p, laddr); p += IPaddrlen; - ipmove(p, ifc->lifc->local); p += IPaddrlen; + if(!ipv6local(ifc, p, 0, raddr)) + ipmove(p, ifc->lifc != nil ? ifc->lifc->local : IPnoaddr); + p += IPaddrlen; hnputs(p, rport); p += 2; hnputs(p, lport); break; diff --git a/sys/src/9/ip/udp.c b/sys/src/9/ip/udp.c index 86205caec..5800c7e8c 100644 --- a/sys/src/9/ip/udp.c +++ b/sys/src/9/ip/udp.c @@ -471,7 +471,9 @@ udpiput(Proto *udp, Ipifc *ifc, Block *bp) p = bp->rp; ipmove(p, raddr); p += IPaddrlen; ipmove(p, laddr); p += IPaddrlen; - ipmove(p, ifc->lifc->local); p += IPaddrlen; + if(!ipv6local(ifc, p, 0, raddr)) + ipmove(p, ifc->lifc != nil ? ifc->lifc->local : IPnoaddr); + p += IPaddrlen; hnputs(p, rport); p += 2; hnputs(p, lport); break;