<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/http.c, branch v2.9.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.9.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.9.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2016-05-17T21:38:28Z</updated>
<entry>
<title>Merge branch 'nd/error-errno'</title>
<updated>2016-05-17T21:38:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-05-17T21:38:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=40cfc95856594ddd04ae6ef3bfd041346c4854ec'/>
<id>urn:sha1:40cfc95856594ddd04ae6ef3bfd041346c4854ec</id>
<content type='text'>
The code for warning_errno/die_errno has been refactored and a new
error_errno() reporting helper is introduced.

* nd/error-errno: (41 commits)
  wrapper.c: use warning_errno()
  vcs-svn: use error_errno()
  upload-pack.c: use error_errno()
  unpack-trees.c: use error_errno()
  transport-helper.c: use error_errno()
  sha1_file.c: use {error,die,warning}_errno()
  server-info.c: use error_errno()
  sequencer.c: use error_errno()
  run-command.c: use error_errno()
  rerere.c: use error_errno() and warning_errno()
  reachable.c: use error_errno()
  mailmap.c: use error_errno()
  ident.c: use warning_errno()
  http.c: use error_errno() and warning_errno()
  grep.c: use error_errno()
  gpg-interface.c: use error_errno()
  fast-import.c: use error_errno()
  entry.c: use error_errno()
  editor.c: use error_errno()
  diff-no-index.c: use error_errno()
  ...
</content>
</entry>
<entry>
<title>Merge branch 'bn/http-cookiefile-config'</title>
<updated>2016-05-17T21:38:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-05-17T21:38:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=459000ef630f99c5f94c92110a5305240a9ef281'/>
<id>urn:sha1:459000ef630f99c5f94c92110a5305240a9ef281</id>
<content type='text'>
"http.cookieFile" configuration variable clearly wants a pathname,
but we forgot to treat it as such by e.g. applying tilde expansion.

* bn/http-cookiefile-config:
  http: expand http.cookieFile as a path
  Documentation: config: improve word ordering for http.cookieFile
</content>
</entry>
<entry>
<title>http.c: use error_errno() and warning_errno()</title>
<updated>2016-05-09T19:29:08Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2016-05-08T09:47:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d2e255eefab204fa6585963d5670b6cffdee866e'/>
<id>urn:sha1:d2e255eefab204fa6585963d5670b6cffdee866e</id>
<content type='text'>
Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'js/http-custom-headers'</title>
<updated>2016-05-06T21:45:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-05-06T21:45:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e250f495b248ec0bbe493e40c98a10414cfa1eef'/>
<id>urn:sha1:e250f495b248ec0bbe493e40c98a10414cfa1eef</id>
<content type='text'>
HTTP transport clients learned to throw extra HTTP headers at the
server, specified via http.extraHeader configuration variable.

* js/http-custom-headers:
  http: support sending custom HTTP headers
</content>
</entry>
<entry>
<title>http: expand http.cookieFile as a path</title>
<updated>2016-05-04T22:59:26Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2016-05-04T18:42:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e5a39ad8e67d61f1f7dfb6ef9d9127a8b11da72c'/>
<id>urn:sha1:e5a39ad8e67d61f1f7dfb6ef9d9127a8b11da72c</id>
<content type='text'>
This should handle .gitconfig files that specify things like:

[http]
	cookieFile = "~/.gitcookies"

Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>http: support sending custom HTTP headers</title>
<updated>2016-04-27T21:02:33Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2016-04-27T12:20:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8cb01e2fd3a50b6d0893dfb066183f16a3c7a355'/>
<id>urn:sha1:8cb01e2fd3a50b6d0893dfb066183f16a3c7a355</id>
<content type='text'>
We introduce a way to send custom HTTP headers with all requests.

This allows us, for example, to send an extra token from build agents
for temporary access to private repositories. (This is the use case that
triggered this patch.)

This feature can be used like this:

	git -c http.extraheader='Secret: sssh!' fetch $URL $REF

Note that `curl_easy_setopt(..., CURLOPT_HTTPHEADER, ...)` takes only
a single list, overriding any previous call. This means we have to
collect _all_ of the headers we want to use into a single list, and
feed it to cURL in one shot. Since we already unconditionally set a
"pragma" header when initializing the curl handles, we can add our new
headers to that list.

For callers which override the default header list (like probe_rpc),
we provide `http_copy_default_headers()` so they can do the same
trick.

Big thanks to Jeff King and Junio Hamano for their outstanding help and
patient reviews.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Reviewed-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/http-socks5h'</title>
<updated>2016-04-22T22:45:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-04-22T22:45:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1c4f47690074de3c27c1a2124779bfe2898f295d'/>
<id>urn:sha1:1c4f47690074de3c27c1a2124779bfe2898f295d</id>
<content type='text'>
The socks5:// proxy support added back in 2.6.4 days was not aware
that socks5h:// proxies behave differently.

* jc/http-socks5h:
  http: differentiate socks5:// and socks5h://
</content>
</entry>
<entry>
<title>http: differentiate socks5:// and socks5h://</title>
<updated>2016-04-10T18:03:17Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-04-08T19:16:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=87f8a0b279def4da439b5e0e41f517a05ef110f0'/>
<id>urn:sha1:87f8a0b279def4da439b5e0e41f517a05ef110f0</id>
<content type='text'>
Felix Ruess &lt;felix.ruess@gmail.com&gt; noticed that with configuration

    $ git config --global 'http.proxy=socks5h://127.0.0.1:1080'

connections to remote sites time out, waiting for DNS resolution.

The logic to detect various flavours of SOCKS proxy and ask the
libcurl layer to use appropriate one understands the proxy string
that begin with socks5, socks4a, etc., but does not know socks5h,
and we end up using CURLPROXY_SOCKS5.  The correct one to use is
CURLPROXY_SOCKS5_HOSTNAME.

https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html says

  ..., socks5h:// (the last one to enable socks5 and asking the
  proxy to do the resolving, also known as CURLPROXY_SOCKS5_HOSTNAME
  type).

which is consistent with the way the breakage was reported.

Tested-by: Felix Ruess &lt;felix.ruess@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jx/http-no-proxy'</title>
<updated>2016-03-10T18:56:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-03-10T18:56:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f4a48e870892b18a7205c9315821e4b6a831ade4'/>
<id>urn:sha1:f4a48e870892b18a7205c9315821e4b6a831ade4</id>
<content type='text'>
* jx/http-no-proxy:
  http: honor no_http env variable to bypass proxy
</content>
</entry>
<entry>
<title>http: honor no_http env variable to bypass proxy</title>
<updated>2016-02-29T19:28:39Z</updated>
<author>
<name>Jiang Xin</name>
<email>xin.jiang@huawei.com</email>
</author>
<published>2016-02-29T15:16:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d445fda44dbf031dccdfd384b2418ea50988a756'/>
<id>urn:sha1:d445fda44dbf031dccdfd384b2418ea50988a756</id>
<content type='text'>
Curl and its families honor several proxy related environment variables:

* http_proxy and https_proxy define proxy for http/https connections.
* no_proxy (a comma separated hosts) defines hosts bypass the proxy.

This command will bypass the bad-proxy and connect to the host directly:

    no_proxy=* https_proxy=http://bad-proxy/ \
    curl -sk https://google.com/

Before commit 372370f (http: use credential API to handle proxy auth...),
Environment variable "no_proxy" will take effect if the config variable
"http.proxy" is not set.  So the following comamnd won't fail if not
behind a firewall.

    no_proxy=* https_proxy=http://bad-proxy/ \
    git ls-remote https://github.com/git/git

But commit 372370f not only read git config variable "http.proxy", but
also read "http_proxy" and "https_proxy" environment variables, and set
the curl option using:

    curl_easy_setopt(result, CURLOPT_PROXY, proxy_auth.host);

This caused "no_proxy" environment variable not working any more.

Set extra curl option "CURLOPT_NOPROXY" will fix this issue.

Signed-off-by: Jiang Xin &lt;xin.jiang@huawei.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
