diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/smtp.c | 7 | ||||
| -rw-r--r-- | lib/smtp.h | 1 | 
2 files changed, 7 insertions, 1 deletions
| diff --git a/lib/smtp.c b/lib/smtp.c index dd08575be..6b4f88559 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -228,8 +228,12 @@ static int smtp_endofresp(struct pingpong *pp, int *resp)      line += 4;      len -= 4; +    /* Does the server support the STARTTLS capability? */ +    if(len >= 8 && !memcmp(line, "STARTTLS", 8)) +      smtpc->tls_supported = TRUE; +      /* Does the server support the SIZE capability? */ -    if(len >= 4 && !memcmp(line, "SIZE", 4)) +    else if(len >= 4 && !memcmp(line, "SIZE", 4))        smtpc->size_supported = TRUE;      /* Do we have the authentication mechanism list? */ @@ -237,6 +241,7 @@ static int smtp_endofresp(struct pingpong *pp, int *resp)        line += 5;        len -= 5; +      /* Loop through the data line */        for(;;) {          while(len &&                (*line == ' ' || *line == '\t' || diff --git a/lib/smtp.h b/lib/smtp.h index cb3ef5854..514e6eb8a 100644 --- a/lib/smtp.h +++ b/lib/smtp.h @@ -65,6 +65,7 @@ struct smtp_conn {    smtpstate state;         /* Always use smtp.c:state() to change state! */    struct curl_slist *rcpt; /* Recipient list */    bool ssldone;            /* Is connect() over SSL done? */ +  bool tls_supported;      /* StartTLS capability supported by server */    bool size_supported;     /* If server supports SIZE extension according to                                RFC 1870 */  }; | 
