]> sjero.net Git - wget/commitdiff
[svn] Applied contributed patches (see ChangeLog for details.)
authorhniksic <devnull@localhost>
Thu, 2 Mar 2000 14:45:37 +0000 (06:45 -0800)
committerhniksic <devnull@localhost>
Thu, 2 Mar 2000 14:45:37 +0000 (06:45 -0800)
src/ChangeLog
src/ftp.c
src/http.c
src/init.c
src/main.c
src/options.h

index e60b55bce11da9d03df813969b59864799ad3522..07d3808a9e7c5166f79ce84e2d1166817f71fd64 100644 (file)
@@ -1,3 +1,7 @@
+1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
+
+       * ftp.c: Respect new option waitretry.
+
 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
 
        * http.c (gethttp): Send custom Referer, if required.
index 9077c674c4b243477754e304553698711a20e3dd..e5a2925e4466bb9b6e483b07dfd8010260a8d129 100644 (file)
--- a/src/ftp.c
+++ b/src/ftp.c
@@ -852,9 +852,16 @@ ftp_loop_internal (struct urlinfo *u, struct fileinfo *f, ccon *con)
       /* Increment the pass counter.  */
       ++count;
       /* Wait before the retrieval (unless this is the very first
-        retrieval).  */
-      if (!first_retrieval && opt.wait)
-       sleep (opt.wait);
+        retrieval).
+        Check if we are retrying or not, wait accordingly - HEH */
+      if (!first_retrieval && (opt.wait || (count && opt.waitretry)))
+       if (count)
+         if (count<opt.waitretry)
+           sleep(count);
+         else
+           sleep(opt.waitretry);
+       else
+         sleep (opt.wait);
       if (first_retrieval)
        first_retrieval = 0;
       if (con->st & ON_YOUR_OWN)
index 8373133b23617f036504afa50b0ca3305de74fe0..3403648a777d1aa0c1cc0e98b057b6b587550c89 100644 (file)
@@ -488,13 +488,14 @@ User-Agent: %s\r\n\
 Host: %s%s\r\n\
 Accept: %s\r\n\
 %s%s%s%s%s%s\r\n",
-         command, path, qstring, useragent, remhost, host_port ? host_port : "",
-         HTTP_ACCEPT, referer ? referer : "",
-         wwwauth ? wwwauth : "", 
-         proxyauth ? proxyauth : "", 
-         range ? range : "",
-         pragma_h, 
-         opt.user_header ? opt.user_header : "");
+          command, path, qstring ? qstring : "", useragent, remhost,
+          host_port ? host_port : "",
+          HTTP_ACCEPT, referer ? referer : "",
+          wwwauth ? wwwauth : "", 
+          proxyauth ? proxyauth : "", 
+          range ? range : "",
+          pragma_h, 
+          opt.user_header ? opt.user_header : "");
   DEBUGP (("---request begin---\n%s---request end---\n", request));
    /* Free the temporary memory.  */
   FREE_MAYBE (wwwauth);
@@ -957,9 +958,16 @@ File `%s' already there, will not retrieve.\n"), u->local);
       /* Increment the pass counter.  */
       ++count;
       /* Wait before the retrieval (unless this is the very first
-        retrieval).  */
-      if (!first_retrieval && opt.wait)
-       sleep (opt.wait);
+        retrieval).
+        Check if we are retrying or not, wait accordingly - HEH */
+      if (!first_retrieval && (opt.wait || (count && opt.waitretry)))
+       if (count)
+         if (count<opt.waitretry)
+           sleep(count);
+         else
+           sleep(opt.waitretry);
+       else
+         sleep (opt.wait);
       if (first_retrieval)
        first_retrieval = 0;
       /* Get the current time string.  */
index 83c954b1e0a14596aa9fe677f20354bf961018dd..45ae35453bfbfac2a7cb86af1975567ae87a32ae 100644 (file)
@@ -151,7 +151,8 @@ static struct {
   { "useproxy",                &opt.use_proxy,         cmd_boolean },
   { "useragent",       NULL,                   cmd_spec_useragent },
   { "verbose",         &opt.verbose,           cmd_boolean },
-  { "wait",            &opt.wait,              cmd_time }
+  { "wait",            &opt.wait,              cmd_time },
+  { "waitretry",       &opt.waitretry,         cmd_time }
 };
 
 /* Return index of COM if it is a valid command, or -1 otherwise.  COM
index a70e11198802d0c07b33906d3dc295efe7f9dd26..6e4f7bc6e8a5fc84cc8bfbb16413f35382b39400 100644 (file)
@@ -142,6 +142,7 @@ Download:\n\
        --spider                 don\'t download anything.\n\
   -T,  --timeout=SECONDS        set the read timeout to SECONDS.\n\
   -w,  --wait=SECONDS           wait SECONDS between retrievals.\n\
+       --waitretry=SECONDS     wait 0..max SECONDS between retries of a retrieval.\n\
   -Y,  --proxy=on/off           turn proxy on or off.\n\
   -Q,  --quota=NUMBER           set retrieval quota to NUMBER.\n\
 \n"),  _("\
@@ -197,6 +198,7 @@ main (int argc, char *const *argv)
 {
   char **url, **t;
   int i, c, nurl, status, append_to_log;
+  int wr;
 
   static struct option long_options[] =
   {
@@ -268,6 +270,7 @@ main (int argc, char *const *argv)
     { "referer", required_argument, NULL, 129 },
     { "use-proxy", required_argument, NULL, 'Y' },
     { "wait", required_argument, NULL, 'w' },
+    { "waitretry", required_argument, NULL, 24 },
     { 0, 0, 0, 0 }
   };
 
@@ -556,6 +559,10 @@ GNU General Public License for more details.\n"));
        case 'w':
          setval ("wait", optarg);
          break;
+       case 24:
+         setval ("waitretry", optarg);
+         wr = 1;
+         break;
        case 'X':
          setval ("excludedirectories", optarg);
          break;
@@ -574,6 +581,13 @@ GNU General Public License for more details.\n"));
   if (opt.verbose == -1)
     opt.verbose = !opt.quiet;
 
+  /* Retain compatibility with previous scripts.
+     if wait has been set, but waitretry has not, give it the wait value.
+     A simple check on the values is not enough, I could have set
+     wait to n>0 and waitretry to 0 - HEH */
+  if (opt.wait && !wr)
+    setval ("waitretry", opt.wait);
+    
   /* Sanity checks.  */
   if (opt.verbose && opt.quiet)
     {
index b43bf7b360ef400202bd90b13ad5d24943d5e306..1036c6f2cd28fba6358c75e4cc15dc3e785d9a90 100644 (file)
@@ -95,7 +95,8 @@ struct options
   long timeout;                        /* The value of read timeout in
                                   seconds. */
 #endif
-  long wait;                   /* The wait period between retries. */
+  long wait;                   /* The wait period between retrievals. */
+  long waitretry;              /* The wait period between retries. - HEH */
   int use_robots;              /* Do we heed robots.txt? */
 
   long quota;                  /* Maximum number of bytes to