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 $@;

Reply via email to