summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-05-23 23:32:24 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-05-23 23:32:24 +0200
commit81918373d23c36bf94dab76d24859a6316afadae (patch)
tree8d141a71580065da32aa41389050f43f52f1c621
parenta8e4b50cb21072c4699291cbeb243e074ff000f1 (diff)
parenta54804ed24165e4d9e3d433149f8535f6ce01058 (diff)
downloadplan9front-81918373d23c36bf94dab76d24859a6316afadae.tar.xz
merge
-rw-r--r--sys/src/cmd/ip/tinc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/cmd/ip/tinc.c b/sys/src/cmd/ip/tinc.c
index 6694e47a3..4dacdd31c 100644
--- a/sys/src/cmd/ip/tinc.c
+++ b/sys/src/cmd/ip/tinc.c
@@ -1440,12 +1440,16 @@ udpclient(int fd, int incoming)
{
uchar ip[IPaddrlen];
char dir[128];
+ int port;
Host *h;
- h = findhost(ip, dir2ipport(fd2dir(fd, dir, sizeof(dir)), ip));
+ port = dir2ipport(fd2dir(fd, dir, sizeof(dir)), ip);
+ h = findhost(ip, port);
+ if(h == nil && incoming)
+ h = findhost(ip, -1); /* might be behind NAT */
if(h != nil && h != myhost){
procsetname("udpclient %s %s %s %I!%d %s", myhost->name,
- incoming ? "in": "out", dir, h->ip, h->port, h->name);
+ incoming ? "in": "out", dir, ip, port, h->name);
if(!incoming){
lock(h->cin);