chiark / gitweb /
uopen.1: Reports wrong section in .TH line.
[preload-hacks] / noip.c
diff --git a/noip.c b/noip.c
index a25d63e23426e9fe52b4089a83d01c6a3439274f..50284e16f77aff59785c1daca0ff401f8c60ef9d 100644 (file)
--- a/noip.c
+++ b/noip.c
@@ -759,13 +759,22 @@ int bind(int sk, const struct sockaddr *sa, socklen_t len)
 int connect(int sk, const struct sockaddr *sa, socklen_t len)
 {
   struct sockaddr_un sun;
+  int fixup_p = 0;
+  int rc;
 
   if (sa->sa_family == AF_INET) {
     PRESERVING_ERRNO({
       do_implicit_bind(sk, &sa, &len, &sun);
+      fixup_p = 1;
     });
   }
-  return real_connect(sk, sa, len);
+  rc = real_connect(sk, sa, len);
+  if (rc < 0) {
+    switch (errno) {
+      case ENOENT:     errno = ECONNREFUSED;   break;
+    }
+  }
+  return rc;
 }
 
 ssize_t sendto(int sk, const void *buf, size_t len, int flags,