]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
watch: avoid Mail::IMAPClient errors when disconnected
authorEric Wong <e@80x24.org>
Sun, 26 Mar 2023 10:52:45 +0000 (10:52 +0000)
committerEric Wong <e@80x24.org>
Sun, 26 Mar 2023 11:45:58 +0000 (11:45 +0000)
No point in issuing LOGOUT commands and causing Mail::IMAPClient
to spew a giant backtrace when we're unconnected.

lib/PublicInbox/Watch.pm

index 8482100cbc598e9553fd7651609b287c9ac20baa..810fb63b985c0329f40b490607172e1d73747941 100644 (file)
@@ -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 $@;