summaryrefslogtreecommitdiffstats
path: root/dirmngr/ks-engine-http.c
diff options
context:
space:
mode:
authorDamien Goutte-Gattat <dgouttegattat@incenp.org>2016-05-29 16:55:42 +0200
committerWerner Koch <wk@gnupg.org>2016-07-14 15:44:21 +0200
commit60428c24fb29cb633c9392abb777bc4da88dbfba (patch)
tree487dbe5e7e0ae7ba07280ea525d810ae404a3b3c /dirmngr/ks-engine-http.c
parentgpg: Remove options --print-dane-records and --print-pka-records. (diff)
downloadgnupg2-60428c24fb29cb633c9392abb777bc4da88dbfba.tar.xz
gnupg2-60428c24fb29cb633c9392abb777bc4da88dbfba.zip
dirmngr: fix handling of HTTP redirections
* dirmngr/ks-engine-http.c (ks_http_fetch): Reinitialize HTTP session when following a HTTP redirection. Signed-off-by: Damien Goutte-Gattat <dgouttegattat@incenp.org>
Diffstat (limited to 'dirmngr/ks-engine-http.c')
-rw-r--r--dirmngr/ks-engine-http.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/dirmngr/ks-engine-http.c b/dirmngr/ks-engine-http.c
index 00d0c4b80..adee04f1b 100644
--- a/dirmngr/ks-engine-http.c
+++ b/dirmngr/ks-engine-http.c
@@ -73,6 +73,7 @@ ks_http_fetch (ctrl_t ctrl, const char *url, estream_t *r_fp)
estream_t fp = NULL;
char *request_buffer = NULL;
+ once_more:
/* Note that we only use the system provided certificates with the
* fetch command. */
err = http_session_new (&session, NULL, NULL, HTTP_FLAG_TRUST_SYS);
@@ -81,7 +82,6 @@ ks_http_fetch (ctrl_t ctrl, const char *url, estream_t *r_fp)
http_session_set_log_cb (session, cert_log_cb);
*r_fp = NULL;
- once_more:
err = http_open (&http,
HTTP_REQ_GET,
url,
@@ -146,6 +146,7 @@ ks_http_fetch (ctrl_t ctrl, const char *url, estream_t *r_fp)
url = request_buffer;
http_close (http, 0);
http = NULL;
+ http_session_release (session);
goto once_more;
}
err = gpg_error_from_syserror ();