diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-05-06 00:54:29 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-05-06 00:54:30 +0300 |
commit | 568324f31ba6cec13532e420117d312db65ddd80 (patch) | |
tree | 749064792c8d2f6e22e932c165373839cef17803 /credential.c | |
parent | da05cacd8a4e7c3d6d8c84aa2c1d45684717ac95 (diff) | |
parent | cd93e6c029026cc3da466ddc53927e85b7e7041e (diff) |
Merge branch 'js/partial-urlmatch'
The same as js/partial-urlmatch-2.17, built on more recent codebase
to avoid unnecessary merge conflicts.
* js/partial-urlmatch:
credential: handle `credential.<partial-URL>.<key>` again
credential: optionally allow partial URLs in credential_from_url_gently()
Diffstat (limited to 'credential.c')
-rw-r--r-- | credential.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/credential.c b/credential.c index c19322d98f..d8d226b97e 100644 --- a/credential.c +++ b/credential.c @@ -86,6 +86,22 @@ static int select_all(const struct urlmatch_item *a, return 0; } +static int match_partial_url(const char *url, void *cb) +{ + struct credential *c = cb; + struct credential want = CREDENTIAL_INIT; + int matches = 0; + + if (credential_from_potentially_partial_url(&want, url) < 0) + warning(_("skipping credential lookup for key: credential.%s"), + url); + else + matches = credential_match(&want, c); + credential_clear(&want); + + return matches; +} + static void credential_apply_config(struct credential *c) { char *normalized_url; @@ -105,6 +121,7 @@ static void credential_apply_config(struct credential *c) config.collect_fn = credential_config_callback; config.cascade_fn = NULL; config.select_fn = select_all; + config.fallback_match_fn = match_partial_url; config.cb = c; credential_format(c, &url); |