On Mon, Feb 11, 2013 at 05:23:39PM +0100, Michal Nazarewicz wrote: > + # TODO: Authentication may fail not because credentials were > + # invalid but due to other reasons, in which we should not > + # reject credentials. > + $auth = Git::credential({ > + 'protocol' => 'smtp', > + 'host' => join(':', $smtp_server, $smtp_server_port), > + 'username' => $smtp_authuser, > + # if there's no password, "git credential fill" will > + # give us one, otherwise it'll just pass this one. > + 'password' => $smtp_authpass > + }, sub { > + my $cred = shift; > + return !!$smtp->auth($cred->{'username'}, $cred->{'password'}); > + }); What do we want to do about this TODO? I am happy to put it off until it becomes a problem, but I wonder if the Git::credential() interface is sufficient to express what we would want. It only allows two return values: true for approve, false for reject. But we would want a tri-state: approve, reject, indeterminate. Reading the Net::SMTP code, it doesn't look like the information is even available to us (it really just passes out success or failure), so I don't think we can even make it work now. But it may be better to prepare the public Git::credential interface for it now, so we do not have to deal with breaking compatibility later. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html