diff options
Diffstat (limited to 'fetchmail.c')
-rw-r--r-- | fetchmail.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/fetchmail.c b/fetchmail.c index 61bafc4c..7952523d 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -335,6 +335,13 @@ int main (int argc, char **argv) * reflect the status of that transaction. */ do { +#ifdef linux + if (poll_interval && monitor) + sleep(3); /* allow some time for the link to quiesce */ + + interface_note_activity(); +#endif + if (poll_interval) { if (outlevel == O_VERBOSE) @@ -351,10 +358,6 @@ int main (int argc, char **argv) * We'll just assume setitimer(2) is available since fetchmail * has to have a BSDoid socket layer to work at all. */ -#ifdef linux - do { - interface_note_activity(); -#endif { struct itimerval ntimeout; @@ -370,9 +373,6 @@ int main (int argc, char **argv) (void) error(0, 0, "awakened by SIGUSR1"); } } -#ifdef linux - } while (!interface_approve()); -#endif if (outlevel == O_VERBOSE) { @@ -383,6 +383,12 @@ int main (int argc, char **argv) } } + +#ifdef linux + if (!interface_approve()) + continue; +#endif + #ifdef HAVE_RES_SEARCH sethostent(TRUE); /* use TCP/IP for mailserver queries */ #endif /* HAVE_RES_SEARCH */ |