diff options
author | Steve Holme <steve_holme@hotmail.com> | 2013-02-10 12:13:55 +0000 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2013-02-10 12:13:55 +0000 |
commit | a1701eea289fe7ea80651f801cf992838a491dde (patch) | |
tree | b002c4af80f1296ef2b10c35fc30817dfb032935 | |
parent | 8170d1f828e50f6badcc7902e557e105f73ccfdb (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.
-rw-r--r-- | lib/imap.c | 6 | ||||
-rw-r--r-- | lib/imap.h | 1 |
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 */ }; |