X-Git-Url: https://git.distorted.org.uk/~mdw/preload-hacks/blobdiff_plain/bd3fedaf2109627e72c202340a33ed51f10ea9e3..79f4d4db843c9a1c6cc2872ee06ed56f883d6817:/noip.c diff --git a/noip.c b/noip.c index 04abe93..237bfd0 100644 --- a/noip.c +++ b/noip.c @@ -882,17 +882,22 @@ int connect(int sk, const struct sockaddr *sa, socklen_t len) int fixup_p = 0; int rc; - if (sa->sa_family == AF_INET) { - PRESERVING_ERRNO({ - do_implicit_bind(sk, &sa, &len, &sun); - fixup_p = 1; - }); - } - rc = real_connect(sk, sa, len); - if (rc < 0) { - switch (errno) { - case ENOENT: errno = ECONNREFUSED; break; - } + switch (sa->sa_family) { + case AF_INET: + PRESERVING_ERRNO({ + do_implicit_bind(sk, &sa, &len, &sun); + fixup_p = 1; + }); + rc = real_connect(sk, sa, len); + if (rc < 0) { + switch (errno) { + case ENOENT: errno = ECONNREFUSED; break; + } + } + break; + default: + rc = real_connect(sk, sa, len); + break; } return rc; }