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 C95B91F934 for ; Thu, 16 Sep 2021 02:19:43 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/3] net_reader: emit .onion help for potential Tor users Date: Wed, 15 Sep 2021 21:19:41 -0500 Message-Id: <20210916021943.22529-2-e@80x24.org> In-Reply-To: <20210916021943.22529-1-e@80x24.org> References: <20210916021943.22529-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We can't easily use torsocks, here, so try to be helpful when it comes to proxy support. --- lib/PublicInbox/NetReader.pm | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm index f0f56431..abcb5d2f 100644 --- a/lib/PublicInbox/NetReader.pm +++ b/lib/PublicInbox/NetReader.pm @@ -56,6 +56,28 @@ sub mic_new ($$$$) { sub auth_anon_cb { '' }; # for Mail::IMAPClient::Authcallback +sub onion_hint ($$) { + my ($lei, $uri) = @_; + $uri->host =~ /\.onion\z/i or return "\n"; + my $t = $uri->isa('PublicInbox::URIimap') ? 'imap' : 'nntp'; + my $url = uri_section($uri); + my $set_cfg = 'lei config'; + if (!$lei) { # public-inbox-watch + my $f = $ENV{PI_CONFIG} || '~/.public-inbox/config'; + $set_cfg = "git config -f $f"; + } + <{Ssl} = 1 if $uri->scheme eq 'imaps'; require PublicInbox::IMAPClient; my $mic = mic_new($self, $mic_arg, $sec, $uri) or - die "E: <$uri> new: $@\n"; + die "E: <$uri> new: $@".onion_hint($lei, $uri); + # default to using STARTTLS if it's available, but allow # it to be disabled since I usually connect to localhost if (!$mic_arg->{Ssl} && !defined($mic_arg->{Starttls}) && @@ -145,7 +168,7 @@ sub nn_new ($$$) { eval { $nn = PublicInbox::NetNNTPSocks->new_socks(%$nn_arg) }; die "E: <$uri> $@\n" if $@; } else { - $nn = Net::NNTP->new(%$nn_arg) or die "E: <$uri> new: $!\n"; + $nn = Net::NNTP->new(%$nn_arg) or return; } # default to using STARTTLS if it's available, but allow @@ -202,7 +225,8 @@ 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_cfg, $uri); + my $nn = nn_new($nn_arg, $nntp_cfg, $uri) or + die "E: <$uri> new: $@".onion_hint($lei, $uri); if ($cred) { $cred->fill($lei) unless defined($p); # may prompt user here if ($nn->authinfo($u, $p)) {