From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 714091FB07 for ; Thu, 9 Sep 2021 05:25:06 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 6/8] net_reader: combine Net::NNTP and IMAPClient args Date: Thu, 9 Sep 2021 05:25:03 +0000 Message-Id: <20210909052505.7174-7-e@80x24.org> In-Reply-To: <20210909052505.7174-1-e@80x24.org> References: <20210909052505.7174-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Since these are keyed by IMAP and NNTP URIs which can never conflict, it simplifies our internals to keep them in one big hash since we'll add POP3 and JMAP client support. --- lib/PublicInbox/NetReader.pm | 10 ++++------ lib/PublicInbox/Watch.pm | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm index f04752e5..91e53913 100644 --- a/lib/PublicInbox/NetReader.pm +++ b/lib/PublicInbox/NetReader.pm @@ -108,7 +108,7 @@ sub mic_for ($$$$) { # mic = Mail::IMAPClient my $err; if ($mic->login && $mic->IsAuthenticated) { # success! keep IMAPClient->new arg in case we get disconnected - $self->{mic_arg}->{$sec} = $mic_arg; + $self->{net_arg}->{$sec} = $mic_arg; if ($cred) { $uri->user($cred->{username}) if !defined($uri->user); } elsif ($mic_arg->{Authmechanism} eq 'ANONYMOUS') { @@ -230,7 +230,7 @@ W: see https://rt.cpan.org/Ticket/Display.html?id=129967 for updates } } - $self->{nn_arg}->{$sec} = $nn_arg; + $self->{net_arg}->{$sec} = $nn_arg; $cred->run($nn ? 'approve' : 'reject') if $cred && $cred->{filled}; $nn; } @@ -306,7 +306,6 @@ sub imap_common_init ($;$) { } } # make sure we can connect and cache the credentials in memory - $self->{mic_arg} = {}; # schema://authority => IMAPClient->new args my $mics = {}; # schema://authority => IMAPClient obj for my $orig_uri (@{$self->{imap_order}}) { my $sec = uri_section($orig_uri); @@ -358,7 +357,6 @@ sub nntp_common_init ($;$) { } } # make sure we can connect and cache the credentials in memory - $self->{nn_arg} = {}; # schema://authority => Net::NNTP->new args my %nn; # schema://authority => Net::NNTP object for my $uri (@{$self->{nntp_order}}) { my $sec = uri_section($uri); @@ -622,7 +620,7 @@ sub mic_get { return $mic if $mic && $mic->IsConnected; delete $cached->{$sec}; } - my $mic_arg = $self->{mic_arg}->{$sec} or + my $mic_arg = $self->{net_arg}->{$sec} or die "BUG: no Mail::IMAPClient->new arg for $sec"; if (defined(my $cb_name = $mic_arg->{Authcallback})) { if (ref($cb_name) ne 'CODE') { @@ -660,7 +658,7 @@ sub nn_get { my $cached = $self->{nn_cached} // {}; my $nn; $nn = delete($cached->{$sec}) and return $nn; - my $nn_arg = $self->{nn_arg}->{$sec} or + my $nn_arg = $self->{net_arg}->{$sec} or die "BUG: no Net::NNTP->new arg for $sec"; my $nntp_cfg = $self->{cfg_opt}->{$sec}; $nn = nn_new($nn_arg, $nntp_cfg, $uri) or return; diff --git a/lib/PublicInbox/Watch.pm b/lib/PublicInbox/Watch.pm index 20ce0616..43ee0714 100644 --- a/lib/PublicInbox/Watch.pm +++ b/lib/PublicInbox/Watch.pm @@ -353,7 +353,7 @@ sub imap_idle_once ($$$$) { sub watch_imap_idle_1 ($$$) { my ($self, $uri, $intvl) = @_; my $sec = uri_section($uri); - my $mic_arg = $self->{mic_arg}->{$sec} or + my $mic_arg = $self->{net_arg}->{$sec} or die "BUG: no Mail::IMAPClient->new arg for $sec"; my $mic; local $0 = $uri->mailbox." $sec";