summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/ip/rudp.c4
-rw-r--r--sys/src/9/ip/udp.c4
2 files changed, 6 insertions, 2 deletions
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;