Commit 475db39bb4c44a2221f340c66c227f555e478d10

Anders Borum 2018-10-06T12:58:06

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.

diff --git a/src/transports/http.c b/src/transports/http.c
index bc3ab18..df0d342 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);
 }