aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fetchmail.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/fetchmail.c b/fetchmail.c
index 6104d1c8..8ded6474 100644
--- a/fetchmail.c
+++ b/fetchmail.c
@@ -922,7 +922,7 @@ static void optmerge(struct query *h2, struct query *h1, int force)
* - false if servers found on the command line */
static int load_params(int argc, char **argv, int optind)
{
- int implicitmode, st;
+ int implicitmode, st, use_kerberos;
struct passwd *pw;
struct query def_opts, *ctl;
struct stat rcstat;
@@ -1070,18 +1070,20 @@ static int load_params(int argc, char **argv, int optind)
* If we're using Kerberos for authentication, we need
* the FQDN in order to generate capability keys.
*/
+ use_kerberos = 0;
+ /* use_kerberos is saved until later to properly set the invisible
+ * --smtphost (aka. smtphunt) default */
for (ctl = querylist; ctl; ctl = ctl->next)
if (ctl->active &&
(ctl->server.protocol==P_ETRN || ctl->server.protocol==P_ODMR
|| ctl->server.authenticate == A_KERBEROS_V4
|| ctl->server.authenticate == A_KERBEROS_V5))
{
- fetchmailhost = host_fqdn(1);
+ use_kerberos = 1;
break;
}
- if (!ctl) /* list exhausted */
- fetchmailhost = host_fqdn(0);
+ fetchmailhost = host_fqdn(use_kerberos);
/* this code enables flags to be turned off */
#define DEFAULT(flag, dflt) if (flag == FLAG_TRUE)\
@@ -1156,7 +1158,7 @@ static int load_params(int argc, char **argv, int optind)
* Make sure we have a nonempty host list to forward to.
*/
if (!ctl->smtphunt)
- save_str(&ctl->smtphunt, fetchmailhost, FALSE);
+ save_str(&ctl->smtphunt, use_kerberos ? fetchmailhost : "localhost", FALSE);
/*
* Make sure we have a nonempty list of domains to fetch from.