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 4/8] net_reader: nntp_opt => cfg_opt
Date: Thu,  9 Sep 2021 05:25:01 +0000	[thread overview]
Message-ID: <20210909052505.7174-5-e@80x24.org> (raw)
In-Reply-To: <20210909052505.7174-1-e@80x24.org>

Since this our internal NNTP options are keyed by URI section,
there's no need to have separate hashes for NNTP and IMAP
options since they URI already distinguishes them.

This will make future changes to support POP3 and JMAP and
arg caching with lei/store easier.
---
 lib/PublicInbox/NetReader.pm | 30 +++++++++++++++---------------
 lib/PublicInbox/Watch.pm     |  2 +-
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm
index 5199a3a3..e0a64202 100644
--- a/lib/PublicInbox/NetReader.pm
+++ b/lib/PublicInbox/NetReader.pm
@@ -138,7 +138,7 @@ sub try_starttls ($) {
 }
 
 sub nn_new ($$$) {
-	my ($nn_arg, $nntp_opt, $uri) = @_;
+	my ($nn_arg, $nntp_cfg, $uri) = @_;
 	my $nn;
 	if (defined $nn_arg->{ProxyAddr}) {
 		require PublicInbox::NetNNTPSocks;
@@ -151,19 +151,19 @@ sub nn_new ($$$) {
 	# default to using STARTTLS if it's available, but allow
 	# it to be disabled for localhost/VPN users
 	if (!$nn_arg->{SSL} && $nn->can('starttls')) {
-		if (!defined($nntp_opt->{starttls}) &&
+		if (!defined($nntp_cfg->{starttls}) &&
 				try_starttls($nn_arg->{Host})) {
 			# soft fail by default
 			$nn->starttls or warn <<"";
 W: <$uri> STARTTLS tried and failed (not requested)
 
-		} elsif ($nntp_opt->{starttls}) {
+		} elsif ($nntp_cfg->{starttls}) {
 			# hard fail if explicitly configured
 			$nn->starttls or die <<"";
 E: <$uri> STARTTLS requested and failed
 
 		}
-	} elsif ($nntp_opt->{starttls}) {
+	} elsif ($nntp_cfg->{starttls}) {
 		$nn->can('starttls') or
 			die "E: <$uri> Net::NNTP too old for STARTTLS\n";
 		$nn->starttls or die <<"";
@@ -176,7 +176,7 @@ E: <$uri> STARTTLS requested and failed
 sub nn_for ($$$$) { # nn = Net::NNTP
 	my ($self, $uri, $nn_args, $lei) = @_;
 	my $sec = uri_section($uri);
-	my $nntp_opt = $self->{nntp_opt}->{$sec} //= {};
+	my $nntp_cfg = $self->{cfg_opt}->{$sec} //= {};
 	my $host = $uri->host;
 	# Net::NNTP and Net::Netrc both mishandle `0', so we pass `127.0.0.1'
 	$host = '127.0.0.1' if $host eq '0';
@@ -202,27 +202,27 @@ sub nn_for ($$$$) { # nn = Net::NNTP
 	$nn_arg->{SSL} = 1 if $uri->secure; # snews == nntps
 	my $sa = $self->{-proxy_cli};
 	%$nn_arg = (%$nn_arg, %$sa) if $sa;
-	my $nn = nn_new($nn_arg, $nntp_opt, $uri);
+	my $nn = nn_new($nn_arg, $nntp_cfg, $uri);
 	if ($cred) {
 		$cred->fill($lei) unless defined($p); # may prompt user here
 		if ($nn->authinfo($u, $p)) {
-			push @{$nntp_opt->{-postconn}}, [ 'authinfo', $u, $p ];
+			push @{$nntp_cfg->{-postconn}}, [ 'authinfo', $u, $p ];
 		} else {
 			warn "E: <$uri> AUTHINFO $u XXXX failed\n";
 			$nn = undef;
 		}
 	}
 
-	if ($nntp_opt->{compress}) {
+	if ($nntp_cfg->{compress}) {
 		# https://rt.cpan.org/Ticket/Display.html?id=129967
 		if ($nn->can('compress')) {
 			if ($nn->compress) {
-				push @{$nntp_opt->{-postconn}}, [ 'compress' ];
+				push @{$nntp_cfg->{-postconn}}, [ 'compress' ];
 			} else {
 				warn "W: <$uri> COMPRESS failed\n";
 			}
 		} else {
-			delete $nntp_opt->{compress};
+			delete $nntp_cfg->{compress};
 			warn <<"";
 W: <$uri> COMPRESS not supported by Net::NNTP
 W: see https://rt.cpan.org/Ticket/Display.html?id=129967 for updates
@@ -348,13 +348,13 @@ sub nntp_common_init ($;$) {
 		# Net::NNTP post-connect commands
 		for my $k (qw(starttls compress)) {
 			$v = cfg_bool($cfg, "nntp.$k", $$uri) // next;
-			$self->{nntp_opt}->{$sec}->{$k} = $v;
+			$self->{cfg_opt}->{$sec}->{$k} = $v;
 		}
 
 		# -watch internal option
 		for my $k (qw(pollInterval)) {
 			$to = cfg_intvl($cfg, "nntp.$k", $$uri) // next;
-			$self->{nntp_opt}->{$sec}->{$k} = $to;
+			$self->{cfg_opt}->{$sec}->{$k} = $to;
 		}
 	}
 	# make sure we can connect and cache the credentials in memory
@@ -662,9 +662,9 @@ sub nn_get {
 	$nn = delete($cached->{$sec}) and return $nn;
 	my $nn_arg = $self->{nn_arg}->{$sec} or
 			die "BUG: no Net::NNTP->new arg for $sec";
-	my $nntp_opt = $self->{nntp_opt}->{$sec};
-	$nn = nn_new($nn_arg, $nntp_opt, $uri) or return;
-	if (my $postconn = $nntp_opt->{-postconn}) {
+	my $nntp_cfg = $self->{cfg_opt}->{$sec};
+	$nn = nn_new($nn_arg, $nntp_cfg, $uri) or return;
+	if (my $postconn = $nntp_cfg->{-postconn}) {
 		for my $m_arg (@$postconn) {
 			my ($method, @args) = @$m_arg;
 			$nn->$method(@args) and next;
diff --git a/lib/PublicInbox/Watch.pm b/lib/PublicInbox/Watch.pm
index 7a35ee59..96faa9f8 100644
--- a/lib/PublicInbox/Watch.pm
+++ b/lib/PublicInbox/Watch.pm
@@ -549,7 +549,7 @@ sub watch_nntp_init ($$) {
 	PublicInbox::NetReader::nntp_common_init($self);
 	for my $uri (@{$self->{nntp_order}}) {
 		my $sec = uri_section($uri);
-		my $intvl = $self->{nntp_opt}->{$sec}->{pollInterval};
+		my $intvl = $self->{cfg_opt}->{$sec}->{pollInterval};
 		push @{$poll->{$intvl || 120}}, $uri;
 	}
 }

  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 ` Eric Wong [this message]
2021-09-09  5:25 ` [PATCH 5/8] net_reader: imap_opt => cfg_opt Eric Wong
2021-09-09  5:25 ` [PATCH 6/8] net_reader: combine Net::NNTP and IMAPClient args Eric Wong
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-5-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).