On 09/27, Junio C Hamano wrote:
> Brandon Williams <bmw...@google.com> writes:
> 
> > @@ -897,6 +898,21 @@ static void set_from_env(const char **var, const char 
> > *envname)
> >             *var = val;
> >  }
> >  
> > +static void protocol_http_header(void)
> > +{
> > +   if (get_protocol_version_config() > 0) {
> > +           struct strbuf protocol_header = STRBUF_INIT;
> > +
> > +           strbuf_addf(&protocol_header, GIT_PROTOCOL_HEADER ": 
> > version=%d",
> > +                       get_protocol_version_config());
> > +
> > +
> > +           extra_http_headers = curl_slist_append(extra_http_headers,
> > +                                                  protocol_header.buf);
> > +           strbuf_release(&protocol_header);
> > +   }
> > +}
> > +
> >  void http_init(struct remote *remote, const char *url, int proactive_auth)
> >  {
> >     char *low_speed_limit;
> > @@ -927,6 +943,8 @@ void http_init(struct remote *remote, const char *url, 
> > int proactive_auth)
> >     if (remote)
> >             var_override(&http_proxy_authmethod, 
> > remote->http_proxy_authmethod);
> >  
> > +   protocol_http_header();
> > +
> >     pragma_header = curl_slist_append(http_copy_default_headers(),
> >             "Pragma: no-cache");
> >     no_pragma_header = curl_slist_append(http_copy_default_headers(),
> > diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf
> > index 0642ae7e6..df1943631 100644
> > --- a/t/lib-httpd/apache.conf
> > +++ b/t/lib-httpd/apache.conf
> > @@ -67,6 +67,9 @@ LockFile accept.lock
> >  <IfModule !mod_unixd.c>
> >     LoadModule unixd_module modules/mod_unixd.so
> >  </IfModule>
> > +<IfModule !mod_setenvif.c>
> > +   LoadModule setenvif_module modules/mod_setenvif.so
> > +</IfModule>
> >  </IfVersion>
> >  
> >  PassEnv GIT_VALGRIND
> > @@ -76,6 +79,10 @@ PassEnv ASAN_OPTIONS
> >  PassEnv GIT_TRACE
> >  PassEnv GIT_CONFIG_NOSYSTEM
> >  
> > +<IfVersion >= 2.4>
> > +   SetEnvIf Git-Protocol ".*" GIT_PROTOCOL=$0
> > +</IfVersion>
> > +
> 
> It is very nice to see that only with a single extra HTTP header and
> the server configuration, everybody else does not have to care how
> the version information is plumbed through ;-)

Having limited experience working with HTTP, it took me a bit to
figure out how to get the server configuration right, but once I got it
working it seemed to work pretty seamlessly :)

-- 
Brandon Williams

Reply via email to