summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Borum <anders@algoritmer.dk>2018-10-06 12:58:06 +0200
committerAnders Borum <anders@algoritmer.dk>2018-10-06 22:00:34 +0200
commit475db39bb4c44a2221f340c66c227f555e478d10 (patch)
tree212fa8ce0001557816cd5f1c8fb6292ee1642933
parenta8d447f68076d1520f69649bb52629941be7031f (diff)
downloadlibgit2-475db39bb4c44a2221f340c66c227f555e478d10.tar.gz
ignore unsupported http authentication schemes
auth_context_match returns 0 instead of -1 for unknown schemes to not fail in situations where some authentication schemes are supported and others are not. apply_credentials is adjusted to handle auth_context_match returning 0 without producing authentication context.
-rw-r--r--src/transports/http.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/transports/http.c b/src/transports/http.c
index bc3ab18e2..df0d342b9 100644
--- a/src/transports/http.c
+++ b/src/transports/http.c
@@ -142,7 +142,7 @@ static int auth_context_match(
}
if (!scheme)
- return -1;
+ return 0;
/* See if authentication has already started for this scheme */
git_vector_foreach(&t->auth_contexts, i, c) {
@@ -188,6 +188,9 @@ static int apply_credentials(git_buf *buf, http_subtransport *t)
if (auth_context_match(&context, t, credtype_match, &cred->credtype) < 0)
return -1;
+ if (!context)
+ return 0;
+
return context->next_token(buf, context, cred);
}