my $uri = PublicInbox::URInntps->new($url);
my $nn = $lei->{net}->nn_get($uri) or
return $lei->err("E: $uri");
- my $l = $nn->newsgroups($uri->group); # name => description
+ # $l = name => description
+ my $l = $nn->newsgroups($uri->group) // return $lei->err(<<EOM);
+E: $uri LIST NEWSGROUPS: ${\($lei->{net}->ndump($nn->message))}
+E: login may be required, try adding `-c nntp.debug' to your command
+EOM
my $sec = $lei->{net}->can('uri_section')->($uri);
if ($json) {
my $all = $nn->list;
sub ndump {
require Data::Dumper;
- Data::Dumper->new(\@_)->Useqq(1)->Terse(1)->Dump;
+ Data::Dumper->new([ $_[-1] ])->Useqq(1)->Terse(1)->Dump;
}
# returns the git config section name, e.g [imap "imaps://user@example.com"]
try_starttls($nn_arg->{Host})) {
# soft fail by default
$nn->starttls or warn <<"";
-W: <$uri> STARTTLS tried and failed (not requested)
+W: <$uri> STARTTLS tried and failed (not requested): ${\(ndump($nn->message))}
} elsif ($nntp_cfg->{starttls}) {
# hard fail if explicitly configured
$nn->starttls or die <<"";
-E: <$uri> STARTTLS requested and failed
+E: <$uri> STARTTLS requested and failed: ${\(ndump($nn->message))}
}
} elsif ($nntp_cfg->{starttls}) {
$nn->can('starttls') or
die "E: <$uri> Net::NNTP too old for STARTTLS\n";
$nn->starttls or die <<"";
-E: <$uri> STARTTLS requested and failed
+E: <$uri> STARTTLS requested and failed: ${\(ndump($nn->message))}
}
$nn;
if ($nn->authinfo($u, $p)) {
push @{$nntp_cfg->{-postconn}}, [ 'authinfo', $u, $p ];
} else {
- warn "E: <$uri> AUTHINFO $u XXXX failed\n";
+ warn <<EOM;
+E: <$uri> AUTHINFO $u XXXX: ${\(ndump($nn->message))}
+EOM
$nn = undef;
}
}
-
- if ($nntp_cfg->{compress}) {
+ if ($nn && $nntp_cfg->{compress}) {
# https://rt.cpan.org/Ticket/Display.html?id=129967
if ($nn->can('compress')) {
if ($nn->compress) {
push @{$nntp_cfg->{-postconn}}, [ 'compress' ];
} else {
- warn "W: <$uri> COMPRESS failed\n";
+ warn <<EOM;
+W: <$uri> COMPRESS: ${\(ndump($nn->message))}
+EOM
}
} else {
delete $nntp_cfg->{compress};