No point in issuing LOGOUT commands and causing Mail::IMAPClient
to spew a giant backtrace when we're unconnected.
---
lib/PublicInbox/Watch.pm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/PublicInbox/Watch.pm b/lib/PublicInbox/Watch.pm
index 8482100c..810fb63b 100644
--- a/lib/PublicInbox/Watch.pm
+++ b/lib/PublicInbox/Watch.pm
@@ -254,9 +254,10 @@ sub quit {
%{$self->{opendirs}} = ();
_done_for_now($self);
quit_done($self);
- if (my $idle_mic = $self->{idle_mic}) {
+ if (my $idle_mic = delete $self->{idle_mic}) {
+ return unless $idle_mic->IsConnected && $idle_mic->Socket;
eval { $idle_mic->done };
- if ($@) {
+ if ($@ && $idle_mic->IsConnected && $idle_mic->Socket) {
warn "IDLE DONE error: $@\n";
eval { $idle_mic->disconnect };
warn "IDLE LOGOUT error: $@\n" if $@;