diff options
-rw-r--r-- | lib/PublicInbox/NetNNTPSocks.pm | 10 | ||||
-rw-r--r-- | lib/PublicInbox/NetReader.pm | 3 |
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; } |