diff options
-rwxr-xr-x | imapsync | 6 | ||||
-rw-r--r-- | lib/Net/IMAP/Sync.pm | 4 |
2 files changed, 5 insertions, 5 deletions
@@ -752,9 +752,8 @@ sub sync_messages($$) { } - -# Wait for notifications on either IMAP server, up to $timout. Then -# issue a NOOP so the connection doesn't terminate for inactivity. +# Wait up to $timout seconds for notifications on either IMAP server. +# Then issue a NOOP so the connection doesn't terminate for inactivity. sub wait_notifications(;$) { my $timeout = shift // 300; @@ -767,6 +766,7 @@ sub wait_notifications(;$) { if (--$timeout == 0) { $lIMAP->noop(); $rIMAP->noop(); + # might have got updates so exit the loop } } } diff --git a/lib/Net/IMAP/Sync.pm b/lib/Net/IMAP/Sync.pm index ad7b2f5..2116443 100644 --- a/lib/Net/IMAP/Sync.pm +++ b/lib/Net/IMAP/Sync.pm @@ -844,12 +844,12 @@ sub pull_updates($) { $self->_send("UID FETCH ".compact_set(@missing)." (MODSEQ FLAGS)") if @missing; @missing = (); } - + # do that afterwards since the UID FETCH command above can produce VANISHED responses my %vanished = map {$_ => 1} @{$self->{_VANISHED}}; @vanished = keys %vanished; $self->{_VANISHED} = []; - + # ignore FLAG updates on VANISHED messages delete @modified{@vanished}; } |