]> granicus.if.org Git - curl/commitdiff
Cleanup handshake after clean NTLM failure
authorJoe Mason <jmason@rim.com>
Fri, 3 Aug 2012 16:37:52 +0000 (12:37 -0400)
committerJoe Mason <jmason@rim.com>
Fri, 3 Aug 2012 21:01:54 +0000 (17:01 -0400)
lib/curl_ntlm.c

index c7d67a0de4cf9d36808b223d293cb4e1edbee5e3..9c7837254922383fc9414068f90e495496942fae 100644 (file)
@@ -95,7 +95,13 @@ CURLcode Curl_input_ntlm(struct connectdata *conn,
       ntlm->state = NTLMSTATE_TYPE2; /* We got a type-2 message */
     }
     else {
-      if(ntlm->state >= NTLMSTATE_TYPE1) {
+      if(ntlm->state == NTLMSTATE_TYPE3) {
+        infof(conn->data, "NTLM handshake rejected\n");
+        Curl_http_ntlm_cleanup(conn);
+        ntlm->state = NTLMSTATE_NONE;
+        return CURLE_REMOTE_ACCESS_DENIED;
+      }
+      else if(ntlm->state >= NTLMSTATE_TYPE1) {
         infof(conn->data, "NTLM handshake failure (internal error)\n");
         return CURLE_REMOTE_ACCESS_DENIED;
       }