email: Moved starttls code in separate functions
authorSteve Holme <steve_holme@hotmail.com>
Wed, 6 Feb 2013 20:02:36 +0000 (20:02 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Wed, 6 Feb 2013 20:02:36 +0000 (20:02 +0000)
To help maintain the readability of the code in imap.c, pop3.c and
smtp.c moved the starttls code into state_starttls() functions.

lib/imap.c
lib/pop3.c
lib/smtp.c

index 72ec871..c7e138d 100644 (file)
@@ -459,6 +459,20 @@ static void state(struct connectdata *conn, imapstate newstate)
   imapc->state = newstate;
 }
 
+static CURLcode imap_state_starttls(struct connectdata *conn)
+{
+  CURLcode result = CURLE_OK;
+  const char *str = getcmdid(conn);
+
+  /* Send the STARTTLS command */
+  result = imap_sendf(conn, str, "%s STARTTLS", str);
+
+  if(!result)
+    state(conn, IMAP_STARTTLS);
+
+  return result;
+}
+
 static CURLcode imap_state_capability(struct connectdata *conn)
 {
   CURLcode result = CURLE_OK;
@@ -608,10 +622,7 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn,
   if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
     /* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
        to TLS connection now */
-    const char *str = getcmdid(conn);
-    result = imap_sendf(conn, str, "%s STARTTLS", str);
-    if(!result)
-      state(conn, IMAP_STARTTLS);
+    result = imap_state_starttls(conn);
   }
   else
     result = imap_state_capability(conn);
index f0c6155..a268d39 100644 (file)
@@ -372,6 +372,19 @@ static void state(struct connectdata *conn, pop3state newstate)
   pop3c->state = newstate;
 }
 
+static CURLcode pop3_state_starttls(struct connectdata *conn)
+{
+  CURLcode result = CURLE_OK;
+
+  /* Send the STLS command */
+  result = Curl_pp_sendf(&conn->proto.pop3c.pp, "STLS");
+
+  if(!result)
+    state(conn, POP3_STARTTLS);
+
+  return result;
+}
+
 static CURLcode pop3_state_capa(struct connectdata *conn)
 {
   CURLcode result = CURLE_OK;
@@ -541,7 +554,6 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
 {
   CURLcode result = CURLE_OK;
   struct SessionHandle *data = conn->data;
-  struct pop3_conn *pop3c = &conn->proto.pop3c;
 
   (void)instate; /* no use for this yet */
 
@@ -553,9 +565,7 @@ static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
   if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
     /* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
        to TLS connection now */
-    result = Curl_pp_sendf(&pop3c->pp, "STLS");
-    if(!result)
-      state(conn, POP3_STARTTLS);
+    result = pop3_state_starttls(conn);
   }
   else
     result = pop3_state_capa(conn);
index d2d4aeb..26b2bd0 100644 (file)
@@ -355,6 +355,19 @@ static CURLcode smtp_state_helo(struct connectdata *conn)
   return CURLE_OK;
 }
 
+static CURLcode smtp_state_starttls(struct connectdata *conn)
+{
+  CURLcode result = CURLE_OK;
+
+  /* Send the STARTTLS command */
+  result = Curl_pp_sendf(&conn->proto.smtpc.pp, "STARTTLS");
+
+  if(!result)
+    state(conn, SMTP_STARTTLS);
+
+  return result;
+}
+
 static CURLcode smtp_authenticate(struct connectdata *conn)
 {
   CURLcode result = CURLE_OK;
@@ -545,9 +558,7 @@ static CURLcode smtp_state_ehlo_resp(struct connectdata *conn, int smtpcode,
   else if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
     /* We don't have a SSL/TLS connection yet, but SSL is requested. Switch
        to TLS connection now */
-    result = Curl_pp_sendf(&conn->proto.smtpc.pp, "STARTTLS");
-    if(!result)
-      state(conn, SMTP_STARTTLS);
+    result = smtp_state_starttls(conn);
   }
   else
     result = smtp_authenticate(conn);