aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-02-10 12:13:55 +0000
committerSteve Holme <steve_holme@hotmail.com>2013-02-10 12:13:55 +0000
commita1701eea289fe7ea80651f801cf992838a491dde (patch)
treeb002c4af80f1296ef2b10c35fc30817dfb032935 /lib
parent8170d1f828e50f6badcc7902e557e105f73ccfdb (diff)
imap: Added support for the STARTTLS capability (Part One)
Introduced detection of the STARTTLS capability, in order to add support for TLS upgrades without unconditionally sending the STARTTLS command.
Diffstat (limited to 'lib')
-rw-r--r--lib/imap.c6
-rw-r--r--lib/imap.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/imap.c b/lib/imap.c
index 9310ee568..efc2f5c57 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -371,8 +371,12 @@ static int imap_endofresp(struct pingpong *pp, int *resp)
line[wordlen] != '\n';)
wordlen++;
+ /* Does the server support the STARTTLS capability? */
+ if(len >= 8 && !memcmp(line, "STARTTLS", 8))
+ imapc->tls_supported = TRUE;
+
/* Has the server explicitly disabled clear text authentication? */
- if(wordlen == 13 && !memcmp(line, "LOGINDISABLED", 13))
+ else if(wordlen == 13 && !memcmp(line, "LOGINDISABLED", 13))
imapc->login_disabled = TRUE;
/* Does the server support the SASL-IR capability? */
diff --git a/lib/imap.h b/lib/imap.h
index eeedcff17..a8164c084 100644
--- a/lib/imap.h
+++ b/lib/imap.h
@@ -62,6 +62,7 @@ struct imap_conn {
int cmdid; /* Last used command ID */
char resptag[5]; /* Response tag to wait for */
bool ssldone; /* Is connect() over SSL done? */
+ bool tls_supported; /* StartTLS capability supported by server */
bool login_disabled; /* LOGIN command explicitly disabled by server */
bool ir_supported; /* Initial response supported by server */
};