about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/NetNNTPSocks.pm10
-rw-r--r--lib/PublicInbox/NetReader.pm3
2 files changed, 7 insertions, 6 deletions
diff --git a/lib/PublicInbox/NetNNTPSocks.pm b/lib/PublicInbox/NetNNTPSocks.pm
index fcd2e580..5b15dd59 100644
--- a/lib/PublicInbox/NetNNTPSocks.pm
+++ b/lib/PublicInbox/NetNNTPSocks.pm
@@ -17,16 +17,18 @@ sub new_socks {
         local %OPT = map {;
                 defined($opt{$_}) ? ($_ => $opt{$_}) : ()
         } @SOCKS_KEYS;
-        Net::NNTP->new(%opt); # this calls our new() below:
+        no warnings 'uninitialized'; # needed for $SOCKS_ERROR
+        Net::NNTP->new(%opt) // die "errors: \$!=$! SOCKS=",
+                                eval('$IO::Socket::Socks::SOCKS_ERROR // ""'),
+                                ', SSL=',
+                                (eval('IO::Socket::SSL->errstr')  // ''), "\n";
 }
 
 # called by Net::NNTP->new
 sub new {
         my ($self, %opt) = @_;
         @OPT{qw(ConnectAddr ConnectPort)} = @opt{qw(PeerAddr PeerPort)};
-        my $ret = $self->SUPER::new(%OPT) or
-                die 'SOCKS error: '.eval('$IO::Socket::Socks::SOCKS_ERROR');
-        $ret;
+        $self->SUPER::new(%OPT);
 }
 
 1;
diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm
index 6802fa72..32e4c20f 100644
--- a/lib/PublicInbox/NetReader.pm
+++ b/lib/PublicInbox/NetReader.pm
@@ -180,8 +180,7 @@ sub nn_new ($$$) {
         if (defined $nn_arg->{ProxyAddr}) {
                 require PublicInbox::NetNNTPSocks;
                 $nn_arg->{SocksDebug} = 1 if $nn_arg->{Debug};
-                eval { $nn = PublicInbox::NetNNTPSocks->new_socks(%$nn_arg) };
-                die "E: <$uri> $@\n" if $@;
+                $nn = PublicInbox::NetNNTPSocks->new_socks(%$nn_arg) or return;
         } else {
                 $nn = Net::NNTP->new(%$nn_arg) or return;
         }