Re: [PATCH] Docs: web server must setenv GIT_PROTOCOL for v2
- From
Jeff King <peff@peff.net>
- Date
- Sep 10, 2021, 11:39 UTC
- Message-ID
- <YTtECuP2/A6+EI4J@coredump.intra.peff.net>
- In-Reply-To
- <xmqqa6kl1wjs.fsf@gitster.g>
On Thu, Sep 09, 2021 at 10:35:51AM -0700, Junio C Hamano wrote:
Show 17 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
> >> @@ -789,6 +790,9 @@ int cmd_main(int argc, const char **argv)
> >> http_config();
> >> max_request_buffer = git_env_ulong("GIT_HTTP_MAX_REQUEST_BUFFER",
> >> max_request_buffer);
> >> + proto_header = getenv("HTTP_GIT_PROTOCOL");
> >> + if (proto_header)
> >> + setenv(GIT_PROTOCOL_ENVIRONMENT, proto_header, 1);
>
> Since this overwrites (I noticed the "1" at the end), the server
> operator cannot force a particular protocol with their server
> configuration, no?
>
> Would a weaker form to use 0 (set if there isn't any, but keep the
> value if somebody else already has set it) work OK? Would that have
> a downside?Yeah, I wondered about that while writing it, but struggled to think of a reason why the server operator would want to set it at all.
But maybe as a workaround for some misbehaving client (e.g., recognizing it by a user-agent header). Or we could even perhaps use this in our tests to test the v2-client-to-v0-server fallback behavior.
I'll re-roll with that change, plus some documentation changes adapted to this new approach.
-Peff