Since we always enable SO_KEEPALIVE unconditionally, having it
in {mic_arg} leads to unnecessary IPC overhead and memory use.
---
 lib/PublicInbox/NetReader.pm | 3 +--
 lib/PublicInbox/Watch.pm     | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm
index b5d14f13..9faa362c 100644
--- a/lib/PublicInbox/NetReader.pm
+++ b/lib/PublicInbox/NetReader.pm
@@ -51,7 +51,7 @@ sub mic_new ($$$$) {
                $socks{Socket} = IO::Socket::Socks->new(%opt) or die
                        "E: <$$uri> ".eval('$IO::Socket::Socks::SOCKS_ERROR');
        }
-       PublicInbox::IMAPClient->new(%$mic_arg, %socks);
+       PublicInbox::IMAPClient->new(%$mic_arg, %socks, Keepalive => 1);
 }
 
 sub auth_anon_cb { '' }; # for Mail::IMAPClient::Authcallback
@@ -76,7 +76,6 @@ sub mic_for ($$$$) { # mic = Mail::IMAPClient
                Port => $uri->port,
                Server => $host,
                Ssl => $uri->scheme eq 'imaps',
-               Keepalive => 1, # SO_KEEPALIVE
                %$common, # may set Starttls, Compress, Debug ....
        };
        $mic_arg->{Ssl} = 1 if $uri->scheme eq 'imaps';
diff --git a/lib/PublicInbox/Watch.pm b/lib/PublicInbox/Watch.pm
index 482d35c4..7a35ee59 100644
--- a/lib/PublicInbox/Watch.pm
+++ b/lib/PublicInbox/Watch.pm
@@ -358,7 +358,7 @@ sub watch_imap_idle_1 ($$$) {
        my $mic;
        local $0 = $uri->mailbox." $sec";
        until ($self->{quit}) {
-               $mic //= PublicInbox::IMAPClient->new(%$mic_arg);
+               $mic //= PublicInbox::IMAPClient->new(%$mic_arg,Keepalive => 1);
                my $err;
                if ($mic && $mic->IsConnected) {
                        local $self->{mics_cached}->{$sec} = $mic;
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/

Reply via email to