X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/preload-hacks/blobdiff_plain/3fa609318c4e7ad8c53bb80a605567eabbc637dc..9111857cc67644ff89749d5919647b38033bb6fd:/noip.c diff --git a/noip.c b/noip.c index b9c040b..345f325 100644 --- a/noip.c +++ b/noip.c @@ -1127,7 +1127,11 @@ static int do_implicit_bind(int sk, const struct sockaddr *sa, unsigned f) sockaddr_in_range_p(sa, &i->minaddr, &i->maxaddr)) { D( fprintf(stderr, "noip(%d): match!\n", pid); ) addr.sa.sa_family = sa->sa_family; - ipaddr_to_sockaddr(&addr.sa, &i->bindaddr); + switch (i->how) { + case EXPLICIT: ipaddr_to_sockaddr(&addr.sa, &i->bindaddr); break; + case SAME: copy_sockaddr(&addr.sa, sa); break; + } + port_to_sockaddr(&addr.sa, 0); goto found; } }