pop3: Added support for the STLS capability (Part One)
authorSteve Holme <steve_holme@hotmail.com>
Sun, 10 Feb 2013 12:16:27 +0000 (12:16 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 10 Feb 2013 12:16:27 +0000 (12:16 +0000)
Introduced detection of the STLS capability, in order to add support
for TLS upgrades without unconditionally sending the STLS command.

lib/pop3.c
lib/pop3.h

index 8c2c9bb..dc66bcb 100644 (file)
@@ -260,8 +260,12 @@ static int pop3_endofresp(struct pingpong *pp, int *resp)
       return TRUE;
     }
 
+    /* Does the server support the STLS capability? */
+    if(len >= 4 && !memcmp(line, "STLS", 4))
+      pop3c->tls_supported = TRUE;
+
     /* Does the server support clear text authentication? */
-    if(len >= 4 && !memcmp(line, "USER", 4))
+    else if(len >= 4 && !memcmp(line, "USER", 4))
       pop3c->authtypes |= POP3_TYPE_CLEARTEXT;
 
     /* Does the server support APOP authentication? */
index b9d7bd4..c37b009 100644 (file)
@@ -66,6 +66,7 @@ struct pop3_conn {
   char *apoptimestamp;    /* APOP timestamp from the server greeting */
   pop3state state;        /* Always use pop3.c:state() to change state! */
   bool ssldone;           /* Is connect() over SSL done? */
+  bool tls_supported;     /* StartTLS capability supported by server */
 };
 
 extern const struct Curl_handler Curl_handler_pop3;