X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fftp.c;h=9728c3394cfdc0257ae30884d73d80f498a52b0f;hb=8566a727674ab3c2b0df03c31c6085a0d5d5bf81;hp=dd27349b19709f85ed7dc5504844e1d0942d1280;hpb=097695b723b517665b1aa56417b5bb809e12d233;p=wget diff --git a/src/ftp.c b/src/ftp.c index dd27349b..9728c339 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -1,5 +1,5 @@ /* File Transfer Protocol support. - Copyright (C) 1996-2005 Free Software Foundation, Inc. + Copyright (C) 1996-2006 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -37,6 +37,7 @@ so, delete this exception statement from your version. */ #endif #include #include +#include #include "wget.h" #include "utils.h" @@ -116,14 +117,14 @@ ftp_do_pasv (int csock, ip_address *addr, int *port) /* If our control connection is over IPv6, then we first try EPSV and then * LPSV if the former is not supported. If the control connection is over * IPv4, we simply issue the good old PASV request. */ - switch (addr->type) + switch (addr->family) { - case IPV4_ADDRESS: + case AF_INET: if (!opt.server_response) logputs (LOG_VERBOSE, "==> PASV ... "); err = ftp_pasv (csock, addr, port); break; - case IPV6_ADDRESS: + case AF_INET6: if (!opt.server_response) logputs (LOG_VERBOSE, "==> EPSV ... "); err = ftp_epsv (csock, addr, port); @@ -159,14 +160,14 @@ ftp_do_port (int csock, int *local_sock) /* If our control connection is over IPv6, then we first try EPRT and then * LPRT if the former is not supported. If the control connection is over * IPv4, we simply issue the good old PORT request. */ - switch (cip.type) + switch (cip.family) { - case IPV4_ADDRESS: + case AF_INET: if (!opt.server_response) logputs (LOG_VERBOSE, "==> PORT ... "); err = ftp_port (csock, local_sock); break; - case IPV6_ADDRESS: + case AF_INET6: if (!opt.server_response) logputs (LOG_VERBOSE, "==> EPRT ... "); err = ftp_eprt (csock, local_sock); @@ -967,7 +968,7 @@ Error in server response, closing control connection.\n")); expected_bytes ? expected_bytes - restval : 0, restval, &rd_size, len, &con->dltime, flags); - tms = time_str (NULL); + tms = time_str (time (NULL)); tmrate = retr_rate (rd_size, con->dltime); total_download_time += con->dltime; @@ -999,7 +1000,6 @@ Error in server response, closing control connection.\n")); err = ftp_response (csock, &respline); if (err != FTPOK) { - xfree (respline); /* The control connection is decidedly closed. Print the time only if it hasn't already been printed. */ if (res != -1) @@ -1150,7 +1150,7 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con) restval = 0; /* Get the current time string. */ - tms = time_str (NULL); + tms = time_str (time (NULL)); /* Print fetch message, if opt.verbose. */ if (opt.verbose) { @@ -1214,7 +1214,7 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con) /* Not as great. */ abort (); } - tms = time_str (NULL); + tms = time_str (time (NULL)); if (!opt.spider) tmrate = retr_rate (len - restval, con->dltime); @@ -1422,7 +1422,7 @@ ftp_retrieve_list (struct url *u, struct fileinfo *f, ccon *con) tml++; #endif /* Compare file sizes only for servers that tell us correct - values. Assumme sizes being equal for servers that lie + values. Assume sizes being equal for servers that lie about file size. */ cor_val = (con->rs == ST_UNIX || con->rs == ST_WINNT); eq_size = cor_val ? (local_size == f->size) : true; @@ -1774,7 +1774,7 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action) of URL. Inherently, its capabilities are limited on what can be encoded into a URL. */ uerr_t -ftp_loop (struct url *u, int *dt, struct url *proxy) +ftp_loop (struct url *u, int *dt, struct url *proxy, bool recursive, bool glob) { ccon con; /* FTP connection */ uerr_t res; @@ -1792,7 +1792,7 @@ ftp_loop (struct url *u, int *dt, struct url *proxy) /* If the file name is empty, the user probably wants a directory index. We'll provide one, properly HTML-ized. Unless opt.htmlify is 0, of course. :-) */ - if (!*u->file && !opt.recursive) + if (!*u->file && !recursive) { struct fileinfo *f; res = ftp_get_listing (u, &con, &f); @@ -1833,7 +1833,7 @@ ftp_loop (struct url *u, int *dt, struct url *proxy) else { bool ispattern = false; - if (opt.ftp_glob) + if (glob) { /* Treat the URL as a pattern if the file name part of the URL path contains wildcards. (Don't check for u->file @@ -1844,7 +1844,7 @@ ftp_loop (struct url *u, int *dt, struct url *proxy) file_part = u->path; ispattern = has_wildcards_p (file_part); } - if (ispattern || opt.recursive || opt.timestamping) + if (ispattern || recursive || opt.timestamping) { /* ftp_retrieve_glob is a catch-all function that gets called if we need globbing, time-stamping or recursion. Its