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 /lib | |
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.
Diffstat (limited to 'lib')
-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 */ }; |