FREE_MAYBE (local_file);
url_free (u);
- if (redirections)
- string_set_free (redirections);
- if (newloc)
- *newloc = url;
+ if (redirections)
+ {
+ string_set_free (redirections);
+ if (newloc)
+ *newloc = url;
+ else
+ xfree (url);
+ }
else
- xfree (url);
+ {
+ if (newloc)
+ *newloc = NULL;
+ xfree (url);
+ }
++global_download_count;
sleep (opt.waitretry);
}
else if (opt.wait)
- /* Otherwise, check if opt.wait is specified. If so, sleep. */
- sleep (opt.wait);
+ {
+ /* Otherwise, check if opt.wait is specified. If so, sleep. */
+ if (count > 1 || !opt.random_wait)
+ sleep (opt.wait);
+ else
+ {
+ int waitsecs = random() % (opt.wait * 2 + 1);
+ DEBUGP(("sleep_between_retrievals: norm=%ld,random=%ld,sleep=%d\n",
+ opt.wait, waitsecs - opt.wait, waitsecs));
+ sleep(waitsecs);
+ }
+ }
}
if (first_retrieval)
first_retrieval = 0;