]> Sergey Matveev's repositories - public-inbox.git/commitdiff
net_reader: combine Net::NNTP and IMAPClient args
authorEric Wong <e@80x24.org>
Thu, 9 Sep 2021 05:25:03 +0000 (05:25 +0000)
committerEric Wong <e@80x24.org>
Thu, 9 Sep 2021 05:42:57 +0000 (05:42 +0000)
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
lib/PublicInbox/Watch.pm

index f04752e566401463b6695b87717fc1562559a958..91e53913240ee9478c00bbe350a2eaece84366e0 100644 (file)
@@ -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;
index 20ce0616dc5037d587747e2479d3eced5a4c6ca7..43ee07143d664a28bffd7513a30d96b3d403e908 100644 (file)
@@ -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";