gnutls: fix the error_is_fatal logic
authorAlessandro Ghedini <al3xbio@gmail.com>
Wed, 24 Oct 2012 09:47:32 +0000 (11:47 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 6 Nov 2012 18:42:37 +0000 (19:42 +0100)
lib/gtls.c

index f5f95aef8ffc88119d7ac9db3e459cf530aea1b4..dbf568c44ce3ebf07458b1410b8d8a9a3718a245 100644 (file)
@@ -299,21 +299,21 @@ static CURLcode handshake(struct connectdata *conn,
       connssl->connecting_state =
         gnutls_record_get_direction(session)?
         ssl_connect_2_writing:ssl_connect_2_reading;
+      continue;
       if(nonblocking)
         return CURLE_OK;
     }
-    else if((rc < 0) && gnutls_error_is_fatal(rc)) {
+    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;
   }
 }