aboutsummaryrefslogtreecommitdiffstats
path: root/driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver.c')
-rw-r--r--driver.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/driver.c b/driver.c
index 55e071f1..409632b6 100644
--- a/driver.c
+++ b/driver.c
@@ -534,6 +534,15 @@ struct method *proto;
goto closeUp;
}
+#ifdef KERBEROS_V4
+ if (queryctl->protocol == P_KPOP)
+ {
+ ok = (pop3_kerberos_auth (socket, queryctl));
+ if (ok != 0)
+ goto cleanUp;
+ }
+#endif
+
/* accept greeting message from mail server */
ok = (protocol->parse_response)(socket, buf);
if (alarmed || ok != 0)
@@ -560,7 +569,7 @@ struct method *proto;
count, count > 1 ? "s" : "",
queryctl->servername);
- if (count > 0)
+ if ((count > 0) && (!check_only))
{
if (queryctl->mda[0] == '\0')
if ((mboxfd = Socket(queryctl->smtphost, SMTP_PORT)) < 0
@@ -659,6 +668,10 @@ struct method *proto;
close(socket);
goto closeUp;
}
+ else if (check_only) {
+ ok = ((count > 0) ? PS_SUCCESS : PS_NOMAIL);
+ goto closeUp;
+ }
else {
ok = gen_transact(socket, protocol->exit_cmd);
if (ok == 0)