From: Eric Wong <e@80x24.org> 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 [thread overview] Message-ID: <20210916021943.22529-2-e@80x24.org> (raw) In-Reply-To: <20210916021943.22529-1-e@80x24.org> 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"; + } + <<EOM + +Assuming you have Tor configured and running locally on port 9050, +try configuring a socks5h:// proxy: + + url=$url + $set_cfg $t.\$url.proxy socks5h://127.0.0.1:9050 + +...before retrying your current command +EOM +} + # mic_for may prompt the user and store auth info, prepares mic_get sub mic_for ($$$$) { # mic = Mail::IMAPClient my ($self, $uri, $mic_common, $lei) = @_; @@ -81,7 +103,8 @@ sub mic_for ($$$$) { # mic = Mail::IMAPClient $mic_arg->{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)) {
next prev parent reply other threads:[~2021-09-16 2:19 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-16 2:19 [PATCH 0/3] IMAP and Tor .onion niceities Eric Wong 2021-09-16 2:19 ` Eric Wong [this message] 2021-09-16 2:19 ` [PATCH 2/3] lei ls-mail-source: sort IMAP folder names Eric Wong 2021-09-16 2:19 ` [PATCH 3/3] imapd: sort LIST response 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=20210916021943.22529-2-e@80x24.org \ --to=e@80x24.org \ --cc=meta@public-inbox.org \ --subject='Re: [PATCH 1/3] net_reader: emit .onion help for potential Tor users' \ /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
Code repositories for project(s) associated with this inbox: https://80x24.org/public-inbox.git 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).