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";
next prev 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).