unofficial mirror of meta@public-inbox.org
 help / color / mirror / Atom feed
From: Eric Wong <e@80x24.org>
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	[thread overview]
Message-ID: <20210909052505.7174-7-e@80x24.org> (raw)
In-Reply-To: <20210909052505.7174-1-e@80x24.org>

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";

  parent reply	other threads:[~2021-09-09  5:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-09  5:24 [PATCH 0/8] net_reader: simplify + fix bugs Eric Wong
2021-09-09  5:24 ` [PATCH 1/8] net_reader: do not set "SSL" fields for non-TLS Eric Wong
2021-09-09  5:24 ` [PATCH 2/8] net_reader: set IMAPClient Keepalive flag late Eric Wong
2021-09-09  5:25 ` [PATCH 3/8] net_reader: preserve memoized IMAPClient arg for SOCKS Eric Wong
2021-09-09  5:25 ` [PATCH 4/8] net_reader: nntp_opt => cfg_opt Eric Wong
2021-09-09  5:25 ` [PATCH 5/8] net_reader: imap_opt " Eric Wong
2021-09-09  5:25 ` Eric Wong [this message]
2021-09-09  5:25 ` [PATCH 7/8] net_reader: improve naming of common args Eric Wong
2021-09-09  5:25 ` [PATCH 8/8] net_reader: support Mail::IMAPClient Ignoresizeerrors Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210909052505.7174-7-e@80x24.org \
    --to=e@80x24.org \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).