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 3AB001F9F4 for ; Thu, 9 Sep 2021 05:25:06 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 4/8] net_reader: nntp_opt => cfg_opt Date: Thu, 9 Sep 2021 05:25:01 +0000 Message-Id: <20210909052505.7174-5-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 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; } }