Re: [PATCH v6 4/4] transport: check if protocol can be used on a redirect
- From
Jeff King <peff@peff.net>
- Date
- Dec 1, 2016, 19:50 UTC
- Message-ID
- <20161201195031.fd4uwmvkyhk4so7i@sigill.intra.peff.net>
- In-Reply-To
- <1480621447-52399-5-git-send-email-bmwill@google.com>
On Thu, Dec 01, 2016 at 11:44:07AM -0800, Brandon Williams wrote:
> Add a the 'redirect' parameter to 'is_transport_allowed' which allows > callers to query if a transport protocol can be used on a redirect.
s/a the/a/
Show 12 quoted lines
> -int is_transport_allowed(const char *type)
> +int is_transport_allowed(const char *type, int redirect)
> {
> const struct string_list *whitelist = protocol_whitelist();
> if (whitelist)
> @@ -735,7 +735,7 @@ int is_transport_allowed(const char *type)
> case PROTOCOL_ALLOW_NEVER:
> return 0;
> case PROTOCOL_ALLOW_USER_ONLY:
> - return git_env_bool("GIT_PROTOCOL_FROM_USER", 1);
> + return git_env_bool("GIT_PROTOCOL_FROM_USER", !redirect);
> }This has the older logic still.
I'm not sure if we should call this "redirect" here. That's how it's used by the curl code, but I think from the perspective of the transport whitelist, it is really "are you overriding the from_user environment".
Calling it "from_user" may be confusing though, as the default value would become "1", even though it means only "as far as I know this is from the user, but maybe the environment says otherwise". So bizarrely, I think calling it "not_from_user" is the clearest value.
-Peff