gnutls: do not fail on non-fatal handshake errors
authorAlessandro Ghedini <al3xbio@gmail.com>
Mon, 20 Aug 2012 14:47:48 +0000 (16:47 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 4 Sep 2012 20:11:58 +0000 (22:11 +0200)
Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685402

lib/gtls.c

index c750a6f..3b4dc40 100644 (file)
@@ -302,15 +302,17 @@ static CURLcode handshake(struct connectdata *conn,
       if(nonblocking)
         return CURLE_OK;
     }
+    else if((rc < 0) && gnutls_error_is_fatal(rc)) {
+      failf(data, "gnutls_handshake() warning: %s", gnutls_strerror(rc));
+    }
     else if(rc < 0) {
       failf(data, "gnutls_handshake() failed: %s", gnutls_strerror(rc));
       return CURLE_SSL_CONNECT_ERROR;
     }
-    else {
-      /* Reset our connect state machine */
-      connssl->connecting_state = ssl_connect_1;
-      return CURLE_OK;
-    }
+
+    /* Reset our connect state machine */
+    connssl->connecting_state = ssl_connect_1;
+    return CURLE_OK;
   }
 }