]> sjero.net Git - wget/blobdiff - src/connect.c
[svn] Gettext-ize previously missed messages.
[wget] / src / connect.c
index 1aab01bb583638e016f9330c7beb540477f275fb..24dd1faae943341ae3534042585798a8e2c9bc1c 100644 (file)
@@ -171,7 +171,6 @@ sockaddr_size (const struct sockaddr *sa)
 #endif
     default:
       abort ();
-      return 0;                        /* so the compiler shuts up. */
     }
 }
 \f
@@ -345,7 +344,7 @@ connect_to_ip (const ip_address *ip, int port, const char *print)
     if (sock >= 0)
       fd_close (sock);
     if (print)
-      logprintf (LOG_VERBOSE, "failed: %s.\n", strerror (errno));
+      logprintf (LOG_VERBOSE, _("failed: %s.\n"), strerror (errno));
     errno = save_errno;
     return -1;
   }
@@ -560,8 +559,6 @@ socket_ip_address (int sock, ip_address *ip, int endpoint)
     default:
       abort ();
     }
-
-  return 0;
 }
 
 /* Return non-zero if the error from the connect code can be
@@ -597,8 +594,16 @@ retryable_socket_connect_error (int err)
       )
     return 0;
 
-  if (err == ECONNREFUSED && !opt.retry_connrefused)
-    return 0;
+  if (!opt.retry_connrefused)
+    if (err == ECONNREFUSED
+#ifdef ENETUNREACH
+       || err == ENETUNREACH   /* network is unreachable */
+#endif
+#ifdef EHOSTUNREACH
+       || err == EHOSTUNREACH  /* host is unreachable */
+#endif
+       )
+      return 0;
 
   return 1;
 }
@@ -822,6 +827,17 @@ fd_register_transport (int fd, fd_reader_t reader, fd_writer_t writer,
   ++transport_map_modified_tick;
 }
 
+/* Return context of the transport registered with
+   fd_register_transport.  This assumes fd_register_transport was
+   previously called on FD.  */
+
+void *
+fd_transport_context (int fd)
+{
+  struct transport_info *info = hash_table_get (transport_map, (void *) fd);
+  return info->ctx;
+}
+
 /* When fd_read/fd_write are called multiple times in a loop, they should
    remember the INFO pointer instead of fetching it every time.  It is
    not enough to compare FD to LAST_FD because FD might have been