]> sjero.net Git - wget/blobdiff - src/ftp.c
[svn] Fix FTP PASV output.
[wget] / src / ftp.c
index 012eacd74aca99b9561601dba47aae39e2661c8a..c1c46ec9f773459dea16db5404e92b926a56efa7 100644 (file)
--- a/src/ftp.c
+++ b/src/ftp.c
@@ -493,9 +493,6 @@ Error in server response, closing control connection.\n"));
     {
       if (opt.ftp_pasv > 0)
        {
-         char thost[256];
-         unsigned short tport;
-
          if (!opt.server_response)
            logputs (LOG_VERBOSE, "==> PASV ... ");
          err = ftp_pasv (&con->rbuf, pasv_addr);
@@ -535,31 +532,23 @@ Error in server response, closing control connection.\n"));
            }
          if (err==FTPOK)
            {
-             struct address_list *al;
+             unsigned short tport;
 
-             sprintf (thost, "%d.%d.%d.%d",
-                      pasv_addr[0], pasv_addr[1], pasv_addr[2], pasv_addr[3]);
              tport = (pasv_addr[4] << 8) + pasv_addr[5];
-
-             al = lookup_host (thost, 0);
-             if (!al)
-               {
-                 CLOSE (csock);
-                 rbuf_uninitialize (&con->rbuf);
-                 return HOSTERR;
-               }
-             dtsock = connect_to_many (al, tport, 0);
-             address_list_release (al);
+             dtsock = connect_to_one (pasv_addr, tport, 1);
 
              if (dtsock < 0)
                {
                  int save_errno = errno;
                  CLOSE (csock);
                  rbuf_uninitialize (&con->rbuf);
+                 logprintf (LOG_VERBOSE, _("couldn't connect to %s:%hu: %s\n"),
+                            pretty_print_address (pasv_addr), tport,
+                            strerror (save_errno));
                  return save_errno == ECONNREFUSED ? CONREFUSED : CONERROR;
                }
 
-             passive_mode_open= 1;  /* Flag to avoid accept port */
+             passive_mode_open = 1;  /* Flag to avoid accept port */
              if (!opt.server_response)
                logputs (LOG_VERBOSE, _("done.    "));
            } /* err==FTP_OK */