From 2f66ca11c1aaa85343cedeccdfa9804614500b58 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sun, 10 Feb 2013 12:16:27 +0000 Subject: [PATCH] pop3: Added support for the STLS capability (Part One) Introduced detection of the STLS capability, in order to add support for TLS upgrades without unconditionally sending the STLS command. --- lib/pop3.c | 6 +++++- lib/pop3.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/pop3.c b/lib/pop3.c index 8c2c9bb..dc66bcb 100644 --- a/lib/pop3.c +++ b/lib/pop3.c @@ -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? */ diff --git a/lib/pop3.h b/lib/pop3.h index b9d7bd4..c37b009 100644 --- a/lib/pop3.h +++ b/lib/pop3.h @@ -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; -- 2.7.4