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.
This commit is contained in:
Steve Holme 2013-02-10 12:13:55 +00:00
parent 8170d1f828
commit a1701eea28
2 changed files with 6 additions and 1 deletions

View File

@ -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? */

View File

@ -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 */
};