diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-11-18 19:10:50 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2018-11-28 15:46:58 +0000 |
commit | 41f620d9a1fd701efb6b9910c364d1eac4d47355 (patch) | |
tree | e7425f0c6e6e426d938c6b4bcd014da59c48bfc8 /src | |
parent | df2cc1087f6de8718319e5bcc65ca8e0e07b717e (diff) | |
download | libgit2-41f620d9a1fd701efb6b9910c364d1eac4d47355.tar.gz |
http: only load proxy configuration during connection
Only load the proxy configuration during connection; we need this data
when we're going to connect to the server, however we may mutate it
after connection (connecting through a CONNECT proxy means that we
should send requests like normal). If we reload the proxy configuration
but do not actually reconnect (because we're in a keep-alive session)
then we will reload the proxy configuration that we should have mutated.
Thus, only load the proxy configuration when we know that we're going to
reconnect.
Diffstat (limited to 'src')
-rw-r--r-- | src/transports/http.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/transports/http.c b/src/transports/http.c index ce2e30964..4b552acf7 100644 --- a/src/transports/http.c +++ b/src/transports/http.c @@ -927,6 +927,9 @@ static int http_connect(http_subtransport *t) t->parse_finished) return 0; + if ((error = load_proxy_config(t)) < 0) + return error; + if (t->server.stream) { git_stream_close(t->server.stream); git_stream_free(t->server.stream); @@ -1368,8 +1371,7 @@ static int http_action( assert(t->server.url.host && t->server.url.port && t->server.url.path); - if ((ret = load_proxy_config(t)) < 0 || - (ret = http_connect(t)) < 0) + if ((ret = http_connect(t)) < 0) return ret; switch (action) { |