summaryrefslogtreecommitdiff
path: root/lib/http_negotiate.c
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2019-05-06 14:32:00 +0200
committerKamil Dudka <kdudka@redhat.com>2019-05-09 09:41:33 +0200
commitf4603708af08f454bca8b74095d0af40a4516512 (patch)
tree2fb1bdd417ef93dc81ce092891f40b23ed5c8f77 /lib/http_negotiate.c
parentf65845c1eccc02385cdfb22bf2e521e670f7b295 (diff)
downloadcurl-f4603708af08f454bca8b74095d0af40a4516512.tar.gz
http_negotiate: do not treat failure of gss_init_sec_context() as fatal
Fixes #3726 Closes #3849
Diffstat (limited to 'lib/http_negotiate.c')
-rw-r--r--lib/http_negotiate.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
index 9415236fb..201c3a785 100644
--- a/lib/http_negotiate.c
+++ b/lib/http_negotiate.c
@@ -143,7 +143,13 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
}
if(!neg_ctx->context) {
result = Curl_input_negotiate(conn, proxy, "Negotiate");
- if(result)
+ if(result == CURLE_LOGIN_DENIED) {
+ /* negotiate auth failed, let's continue unauthenticated to stay
+ * compatible with the behavior before curl-7_64_0-158-g6c6035532 */
+ conn->data->state.authproblem = TRUE;
+ return CURLE_OK;
+ }
+ else if(result)
return result;
}