aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fetchmail.c6
-rw-r--r--fetchmail.h3
2 files changed, 5 insertions, 4 deletions
diff --git a/fetchmail.c b/fetchmail.c
index ac6d99e0..6e1d6756 100644
--- a/fetchmail.c
+++ b/fetchmail.c
@@ -324,7 +324,7 @@ int main(int argc, char **argv)
{
if (ctl->active && !(implicitmode && ctl->server.skip)&&!ctl->password)
{
- if (ctl->server.authenticate > A_PASSWORD || ctl->server.protocol >= P_ETRN)
+ if (NO_PASSWORD(ctl))
/* Server won't care what the password is, but there
must be some non-null string here. */
ctl->password = ctl->remotename;
@@ -494,9 +494,7 @@ int main(int argc, char **argv)
for (ctl = querylist; ctl; ctl = ctl->next)
{
if (ctl->active && !(implicitmode && ctl->server.skip)
- && ctl->server.authenticate <= A_PASSWORD
- && ctl->server.protocol < P_ETRN
- && !ctl->password)
+ && !NO_PASSWORD(ctl) && !ctl->password)
{
if (!isatty(0))
{
diff --git a/fetchmail.h b/fetchmail.h
index 9c996c9c..1bbf7db3 100644
--- a/fetchmail.h
+++ b/fetchmail.h
@@ -36,6 +36,9 @@
#define A_GSSAPI 4 /* authenticate with GSSAPI */
#define A_SSH 5 /* authentication at session level */
+/* some protocols (KERBEROS, GSSAPI, SSH) don't require a password */
+#define NO_PASSWORD(ctl) ((ctl)->server.authenticate > A_PASSWORD || (ctl)->server.protocol >= P_ETRN)
+
/*
* Definitions for buffer sizes. We get little help on setting maxima
* from IMAP RFCs up to 2060, so these are mostly from POP3.