From 24dfc322db3ddd75d578011d7583dde5d763bd78 Mon Sep 17 00:00:00 2001
From: Jiri Hruska <jirka@fud.cz>
Date: Mon, 9 Sep 2013 01:14:32 +0200
Subject: [PATCH 4/4] smtp: Speed up SSL connection initialization

Don't wait for the next callback call (usually 1 sec) before
continuing with SMTP specific connection initialization.
---
 lib/smtp.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/smtp.c b/lib/smtp.c
index 7ba2ba4..2d4055c 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -1392,11 +1392,13 @@ static CURLcode smtp_multi_statemach(struct connectdata *conn, bool *done)
   CURLcode result = CURLE_OK;
   struct smtp_conn *smtpc = &conn->proto.smtpc;
 
-  if((conn->handler->flags & PROTOPT_SSL) && !smtpc->ssldone)
+  if((conn->handler->flags & PROTOPT_SSL) && !smtpc->ssldone) {
     result = Curl_ssl_connect_nonblocking(conn, FIRSTSOCKET, &smtpc->ssldone);
-  else
-    result = Curl_pp_statemach(&smtpc->pp, FALSE);
+    if(result || !smtpc->ssldone)
+      return result;
+  }
 
+  result = Curl_pp_statemach(&smtpc->pp, FALSE);
   *done = (smtpc->state == SMTP_STOP) ? TRUE : FALSE;
 
   return result;
-- 
1.7.9.msysgit.0

