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