]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei q: continue remote search if torsocks(1) is missing
authorEric Wong <e@80x24.org>
Mon, 25 Jan 2021 01:18:57 +0000 (17:18 -0800)
committerEric Wong <e@80x24.org>
Tue, 26 Jan 2021 18:51:31 +0000 (18:51 +0000)
torsocks is just one of many ways to get curl to use Tor,
so we'll continue if we can't find torsocks in our PATH
and assume the user has a proxy configured via curlrc,
the command-line, environment variable, or even firewall
rules.

lib/PublicInbox/LeiXSearch.pm

index 369f6f89ecc44b99b6c9e22ee72c0994b9ecc6dd..b470c1130f60036d0f4c8d9619934825c03cec83 100644 (file)
@@ -228,10 +228,16 @@ sub query_remote_mboxrd {
                my $cmd = [ @cmd, $uri->as_string ];
                if ($tor eq 'auto' && substr($uri->host, -6) eq '.onion' &&
                                (($env->{LD_PRELOAD}//'') !~ /torsocks/)) {
-                       unshift @$cmd, 'torsocks';
+                       unshift @$cmd, which('torsocks');
                } elsif (PublicInbox::Config::git_bool($tor)) {
-                       unshift @$cmd, 'torsocks';
+                       unshift @$cmd, which('torsocks');
                }
+
+               # continue anyways if torsocks is missing; a proxy may be
+               # specified via CLI, curlrc, environment variable, or even
+               # firewall rule
+               shift(@$cmd) if !$cmd->[0];
+
                $lei->err("# @$cmd") if $verbose;
                $? = 0;
                my $fh = popen_rd($cmd, $env, $rdr);