about summary refs log tree commit homepage
path: root/lib/PublicInbox/NetReader.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-09-06 07:11:53 +0000
committerEric Wong <e@80x24.org>2021-09-06 11:05:40 +0000
commitef507953617741565d18c86b87973469206d5632 (patch)
tree203c8cbd67999e4ac7aa91c8fc5aabe74421858e /lib/PublicInbox/NetReader.pm
parent09acfa0ba87514dac4802ca88b3c95bb53d15c04 (diff)
downloadpublic-inbox-ef507953617741565d18c86b87973469206d5632.tar.gz
Credentials sourced via ~/.netrc should not be written to
git-credential.
Diffstat (limited to 'lib/PublicInbox/NetReader.pm')
-rw-r--r--lib/PublicInbox/NetReader.pm12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm
index c050c60f..08166415 100644
--- a/lib/PublicInbox/NetReader.pm
+++ b/lib/PublicInbox/NetReader.pm
@@ -96,8 +96,8 @@ sub mic_for ($$$$) { # mic = Mail::IMAPClient
                 $cred = undef;
         }
         if ($cred) {
-                $cred->check_netrc unless defined $cred->{password};
-                $cred->fill($lei); # may prompt user here
+                my $p = $cred->{password} // $cred->check_netrc;
+                $cred->fill($lei) unless defined($p); # may prompt user here
                 $mic->User($mic_arg->{User} = $cred->{username});
                 $mic->Password($mic_arg->{Password} = $cred->{password});
         } else { # AUTH=ANONYMOUS
@@ -121,7 +121,7 @@ sub mic_for ($$$$) { # mic = Mail::IMAPClient
                 }
                 $mic = undef;
         }
-        $cred->run($mic ? 'approve' : 'reject') if $cred;
+        $cred->run($mic ? 'approve' : 'reject') if $cred && $cred->{filled};
         if ($err) {
                 $lei ? $lei->fail($err) : warn($err);
         }
@@ -191,7 +191,7 @@ sub nn_for ($$$$) { # nn = Net::NNTP
                 }, 'PublicInbox::GitCredential';
                 ($u, $p) = split(/:/, $ui, 2);
                 ($cred->{username}, $cred->{password}) = ($u, $p);
-                $cred->check_netrc unless defined $p;
+                $p //= $cred->check_netrc;
         }
         my $common = $nn_args->{$sec} // {};
         my $nn_arg = {
@@ -204,7 +204,7 @@ sub nn_for ($$$$) { # nn = Net::NNTP
         %$nn_arg = (%$nn_arg, %$sa) if $sa;
         my $nn = nn_new($nn_arg, $nntp_opt, $uri);
         if ($cred) {
-                $cred->fill($lei); # may prompt user here
+                $cred->fill($lei) unless defined($p); # may prompt user here
                 if ($nn->authinfo($u, $p)) {
                         push @{$nntp_opt->{-postconn}}, [ 'authinfo', $u, $p ];
                 } else {
@@ -231,7 +231,7 @@ W: see https://rt.cpan.org/Ticket/Display.html?id=129967 for updates
         }
 
         $self->{nn_arg}->{$sec} = $nn_arg;
-        $cred->run($nn ? 'approve' : 'reject') if $cred;
+        $cred->run($nn ? 'approve' : 'reject') if $cred && $cred->{filled};
         $nn;
 }