]> sjero.net Git - wget/commitdiff
Recieve ftp listing even when .listing file exist and --no-clobber option is given.
authorNikolay Merinov <kim.roader@gmail.com>
Wed, 3 Oct 2012 15:31:25 +0000 (21:31 +0600)
committerGiuseppe Scrivano <gscrivano@gnu.org>
Sun, 7 Oct 2012 13:22:34 +0000 (15:22 +0200)
src/ChangeLog
src/ftp.c

index 13f752964284b183379aa561ac65aa65486a3be1..b1bcff48de7007683f5176ddfda99c87f6654de9 100644 (file)
@@ -1,3 +1,8 @@
+2012-10-03 Merinov Nikolay <kim.roader@gmail.com>
+
+       * ftp.c (ftp_loop_internal): Ignore --no-clobber option when
+       receiving directory listing.
+
 2012-10-07  Tim Ruehsen  <tim.ruehsen@gmx.de>
            Giuseppe Scrivano  <gscrivano@gnu.org>
 
index 669e66373e1f384f5bb5c6d535c43c1a1c86b4d7..b585631fc7788402874fa21e75be406ef59ecad0 100644 (file)
--- a/src/ftp.c
+++ b/src/ftp.c
@@ -1424,7 +1424,12 @@ ftp_loop_internal (struct url *u, struct fileinfo *f, ccon *con, char **local_fi
 
   /* If the output_document was given, then this check was already done and
      the file didn't exist. Hence the !opt.output_document */
-  if (opt.noclobber && !opt.output_document && file_exists_p (con->target))
+
+  /* If we receive .listing file it is necessary to determine system type of the ftp
+     server even if opn.noclobber is given. Thus we must ignore opt.noclobber in
+     order to establish connection with the server and get system type. */
+  if (opt.noclobber && !opt.output_document && file_exists_p (con->target)
+      && !((con->cmd & DO_LIST) && !(con->cmd & DO_RETR)))
     {
       logprintf (LOG_VERBOSE,
                  _("File %s already there; not retrieving.\n"), quote (con->target));