summaryrefslogtreecommitdiff
path: root/src/transports/http.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transports/http.c')
-rw-r--r--src/transports/http.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/transports/http.c b/src/transports/http.c
index cd209efff..9e35f23c2 100644
--- a/src/transports/http.c
+++ b/src/transports/http.c
@@ -25,6 +25,8 @@
#include "streams/tls.h"
#include "streams/socket.h"
+bool git_http__expect_continue = false;
+
git_http_auth_scheme auth_schemes[] = {
{ GIT_HTTP_AUTH_NEGOTIATE, "Negotiate", GIT_CREDTYPE_DEFAULT, git_http_auth_negotiate },
{ GIT_HTTP_AUTH_NTLM, "NTLM", GIT_CREDTYPE_USERPASS_PLAINTEXT, git_http_auth_ntlm },
@@ -84,6 +86,7 @@ typedef struct {
git_cred *cred;
unsigned url_cred_presented : 1,
authenticated : 1;
+ git_http_authtype_t prior_authtype;
git_vector auth_challenges;
git_http_auth_context *auth_context;
@@ -1048,8 +1051,10 @@ static void reset_auth_connection(http_server *server)
*/
if (server->authenticated &&
- server->auth_context &&
+ server->auth_context &&
server->auth_context->connection_affinity) {
+ server->prior_authtype = server->auth_context->type;
+
free_auth_context(server);
server->url_cred_presented = 0;