noip.c (encode_inet_addr): Hoist `found' label to top-level.
[preload-hacks] / noip.c
diff --git a/noip.c b/noip.c
index 37ec33c..31616de 100644 (file)
--- a/noip.c
+++ b/noip.c
@@ -742,8 +742,8 @@ static int encode_inet_addr(struct sockaddr_un *sun,
     errno = EADDRINUSE;
     D( fprintf(stderr, " -- can't resolve\n"); )
     return (-1);
-  found:;
   }
+found:
   D( fprintf(stderr, " -> `%s'\n", sun->sun_path); )
   return (0);
 }
@@ -1690,40 +1690,36 @@ int accept(int sk, struct sockaddr *sa, socklen_t *len)
 
 int getsockname(int sk, struct sockaddr *sa, socklen_t *len)
 {
+  char sabuf[1024];
+  socklen_t mylen = sizeof(sabuf);
   int rc;
   Dpid;
 
   D( fprintf(stderr, "noip(%d): GETSOCKNAME sk=%d", pid, sk); )
-  PRESERVING_ERRNO({
-    char sabuf[1024];
-    socklen_t mylen = sizeof(sabuf);
-    rc = real_getsockname(sk, SA(sabuf), &mylen);
-    if (rc >= 0) {
-      D( fprintf(stderr, " -> converting...\n"); )
-      return_fake_name(SA(sabuf), mylen, sa, len);
-      D( fprintf(stderr, "noip(%d): ... GETSOCKNAME", pid); )
-    }
-  });
+  rc = real_getsockname(sk, SA(sabuf), &mylen);
+  if (rc >= 0) {
+    D( fprintf(stderr, " -> converting...\n"); )
+    return_fake_name(SA(sabuf), mylen, sa, len);
+    D( fprintf(stderr, "noip(%d): ... GETSOCKNAME", pid); )
+  }
   D( dump_addrresult(rc, sa, *len); )
   return (rc);
 }
 
 int getpeername(int sk, struct sockaddr *sa, socklen_t *len)
 {
+  char sabuf[1024];
+  socklen_t mylen = sizeof(sabuf);
   int rc;
   Dpid;
 
   D( fprintf(stderr, "noip(%d): GETPEERNAME sk=%d", pid, sk); )
-  PRESERVING_ERRNO({
-    char sabuf[1024];
-    socklen_t mylen = sizeof(sabuf);
-    rc = real_getpeername(sk, SA(sabuf), &mylen);
-    if (rc >= 0) {
-      D( fprintf(stderr, " -> converting...\n"); )
-      return_fake_name(SA(sabuf), mylen, sa, len);
-      D( fprintf(stderr, "noip(%d): ... GETPEERNAME", pid); )
-    }
-  });
+  rc = real_getpeername(sk, SA(sabuf), &mylen);
+  if (rc >= 0) {
+    D( fprintf(stderr, " -> converting...\n"); )
+    return_fake_name(SA(sabuf), mylen, sa, len);
+    D( fprintf(stderr, "noip(%d): ... GETPEERNAME", pid); )
+  }
   D( dump_addrresult(rc, sa, *len); )
   return (0);
 }
@@ -1732,6 +1728,7 @@ int getsockopt(int sk, int lev, int opt, void *p, socklen_t *len)
 {
   switch (lev) {
     case IPPROTO_IP:
+    case IPPROTO_IPV6:
     case IPPROTO_TCP:
     case IPPROTO_UDP:
       if (*len > 0)
@@ -1745,6 +1742,7 @@ int setsockopt(int sk, int lev, int opt, const void *p, socklen_t len)
 {
   switch (lev) {
     case IPPROTO_IP:
+    case IPPROTO_IPV6:
     case IPPROTO_TCP:
     case IPPROTO_UDP:
       return (0);