mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Fix opt.wait.
This commit is contained in:
parent
03d11ff1bb
commit
b0e9dfd4e2
@ -1,3 +1,12 @@
|
||||
2000-12-06 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* ftp.c (ftp_loop_internal): Ditto.
|
||||
|
||||
* http.c (http_loop): Use it.
|
||||
|
||||
* retr.c (sleep_between_retrievals): New function that handles the
|
||||
logic of opt.wait and opt.waitretry.
|
||||
|
||||
2000-12-06 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* rbuf.h: Implement only a single version of RBUF_READCHAR, using
|
||||
|
20
src/ftp.c
20
src/ftp.c
@ -948,8 +948,6 @@ Error in server response, closing control connection.\n"));
|
||||
static uerr_t
|
||||
ftp_loop_internal (struct urlinfo *u, struct fileinfo *f, ccon *con)
|
||||
{
|
||||
static int first_retrieval = 1;
|
||||
|
||||
int count, orig_lp;
|
||||
long restval, len;
|
||||
char *tms, *tmrate, *locf;
|
||||
@ -986,23 +984,7 @@ 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).
|
||||
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;
|
||||
sleep_between_retrievals (count);
|
||||
if (con->st & ON_YOUR_OWN)
|
||||
{
|
||||
con->cmd = 0;
|
||||
|
20
src/http.c
20
src/http.c
@ -1234,8 +1234,6 @@ Accept: %s\r\n\
|
||||
uerr_t
|
||||
http_loop (struct urlinfo *u, char **newloc, int *dt)
|
||||
{
|
||||
static int first_retrieval = 1;
|
||||
|
||||
int count;
|
||||
int use_ts, got_head = 0; /* time-stamping info */
|
||||
char *filename_plus_orig_suffix;
|
||||
@ -1348,23 +1346,7 @@ 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).
|
||||
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;
|
||||
sleep_between_retrievals (count);
|
||||
/* Get the current time string. */
|
||||
tms = time_str (NULL);
|
||||
/* Print fetch message, if opt.verbose. */
|
||||
|
31
src/retr.c
31
src/retr.c
@ -634,3 +634,34 @@ downloaded_exceeds_quota (void)
|
||||
|
||||
return opt.downloaded > opt.quota;
|
||||
}
|
||||
|
||||
/* If opt.wait or opt.waitretry are specified, and if certain
|
||||
conditions are met, sleep the appropriate number of seconds. See
|
||||
the documentation of --wait and --waitretry for more information.
|
||||
|
||||
COUNT is the count of current retrieval, beginning with 1. */
|
||||
|
||||
void
|
||||
sleep_between_retrievals (int count)
|
||||
{
|
||||
static int first_retrieval = 1;
|
||||
|
||||
if (!first_retrieval && (opt.wait || opt.waitretry))
|
||||
{
|
||||
if (opt.waitretry && count > 1)
|
||||
{
|
||||
/* If opt.waitretry is specified and this is a retry, wait
|
||||
for COUNT-1 number of seconds, or for opt.waitretry
|
||||
seconds. */
|
||||
if (count <= opt.waitretry)
|
||||
sleep (count - 1);
|
||||
else
|
||||
sleep (opt.waitretry);
|
||||
}
|
||||
else if (opt.wait)
|
||||
/* Otherwise, check if opt.wait is specified. If so, sleep. */
|
||||
sleep (opt.wait);
|
||||
}
|
||||
if (first_retrieval)
|
||||
first_retrieval = 0;
|
||||
}
|
||||
|
@ -37,4 +37,6 @@ void printwhat PARAMS ((int, int));
|
||||
void downloaded_increase PARAMS ((unsigned long));
|
||||
int downloaded_exceeds_quota PARAMS ((void));
|
||||
|
||||
void sleep_between_retrievals PARAMS ((int));
|
||||
|
||||
#endif /* RETR_H */
|
||||
|
Loading…
Reference in New Issue
Block a user