From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.2 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, T_SCC_BODY_TEXT_LINE shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 360381F518 for ; Wed, 10 Jan 2024 11:18:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1704885536; bh=Xspyalz9hrZLtsGIwNYXo/Pg3o1EUV8z0uu1b0fjQzQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=oVzkLmyh/qcFHfMWAbzRljhji95ZeZyilAFsKltjD58hxM6cjio/3PQbEN1/a6IyA FC4NSEj0HT9/RWIr6GZJuV4Qvv7ERW0DaaE49Gim/1HuYv7sHuT81QXJPSeZn3P5PL ntt0HJ+TQdww7MhSuiFDmvMhNdkoxWivhAAe3hGM= From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/3] lei+net_reader: show NNTP message in more failures Date: Wed, 10 Jan 2024 11:18:54 +0000 Message-ID: <20240110111855.2656443-3-e@80x24.org> In-Reply-To: <20240110111855.2656443-1-e@80x24.org> References: <20240110111855.2656443-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Showing absolutely nothing when hitting a server requiring authentication is a very bad user experience. While we're at it, use Net::Cmd->message in more places where we experience failure, too. --- lib/PublicInbox/LeiLsMailSource.pm | 6 +++++- lib/PublicInbox/NetReader.pm | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/PublicInbox/LeiLsMailSource.pm b/lib/PublicInbox/LeiLsMailSource.pm index 4b427b26..ab6c1e60 100644 --- a/lib/PublicInbox/LeiLsMailSource.pm +++ b/lib/PublicInbox/LeiLsMailSource.pm @@ -42,7 +42,11 @@ sub input_path_url { # overrides LeiInput version 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(<{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; diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm index 751043e9..ec18818b 100644 --- a/lib/PublicInbox/NetReader.pm +++ b/lib/PublicInbox/NetReader.pm @@ -14,7 +14,7 @@ our @EXPORT = qw(uri_section imap_uri nntp_uri); 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"] @@ -240,19 +240,19 @@ sub nn_new ($$$$) { 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; @@ -298,18 +298,21 @@ sub nn_for ($$$$) { # nn = Net::NNTP if ($nn->authinfo($u, $p)) { push @{$nntp_cfg->{-postconn}}, [ 'authinfo', $u, $p ]; } else { - warn "E: <$uri> AUTHINFO $u XXXX failed\n"; + warn < 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 < COMPRESS: ${\(ndump($nn->message))} +EOM } } else { delete $nntp_cfg->{compress};