mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-21 14:47:03 +01:00
dirmngr: Do not use a blocking connect in Tor mode.
* dirmngr/http.c (http_raw_connect): Disable the timeout in Tor mode. (send_request): Ditto. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
fd68bdb61e
commit
c5e5748480
@ -955,6 +955,10 @@ http_raw_connect (http_t *r_hd, const char *server, unsigned short port,
|
||||
log_error ("Tor support is not available\n");
|
||||
return gpg_err_make (default_errsource, GPG_ERR_NOT_IMPLEMENTED);
|
||||
}
|
||||
/* Non-blocking connects do not work with our Tor proxy because
|
||||
* we can't continue the Socks protocol after the EINPROGRESS.
|
||||
* Disable the timeout to use a blocking connect. */
|
||||
timeout = 0;
|
||||
}
|
||||
|
||||
/* Create the handle. */
|
||||
@ -1698,6 +1702,10 @@ send_request (http_t hd, const char *httphost, const char *auth,
|
||||
log_error ("Tor support is not available\n");
|
||||
return gpg_err_make (default_errsource, GPG_ERR_NOT_IMPLEMENTED);
|
||||
}
|
||||
/* Non-blocking connects do not work with our Tor proxy because
|
||||
* we can't continue the Socks protocol after the EINPROGRESS.
|
||||
* Disable the timeout to use a blocking connect. */
|
||||
timeout = 0;
|
||||
}
|
||||
|
||||
server = *hd->uri->host ? hd->uri->host : "localhost";
|
||||
|
@ -40,6 +40,7 @@
|
||||
|
||||
#include "../common/util.h"
|
||||
#include "../common/logging.h"
|
||||
#include "dns-stuff.h"
|
||||
#include "http.h"
|
||||
|
||||
#include <ksba.h>
|
||||
@ -312,9 +313,25 @@ main (int argc, char **argv)
|
||||
if (!cafile)
|
||||
cafile = prepend_srcdir ("tls-ca.pem");
|
||||
|
||||
if (verbose)
|
||||
my_http_flags |= HTTP_FLAG_LOG_RESP;
|
||||
|
||||
if (verbose || debug)
|
||||
http_set_verbose (verbose, debug);
|
||||
|
||||
/* http.c makes use of the assuan socket wrapper. */
|
||||
assuan_sock_init ();
|
||||
|
||||
if ((my_http_flags & HTTP_FLAG_FORCE_TOR))
|
||||
{
|
||||
enable_dns_tormode (1);
|
||||
if (assuan_sock_set_flag (ASSUAN_INVALID_FD, "tor-mode", 1))
|
||||
{
|
||||
log_error ("error enabling Tor mode: %s\n", strerror (errno));
|
||||
log_info ("(is your Libassuan recent enough?)\n");
|
||||
}
|
||||
}
|
||||
|
||||
#if HTTP_USE_NTBTLS
|
||||
log_info ("new session.\n");
|
||||
err = http_session_new (&session, NULL,
|
||||
|
Loading…
x
Reference in New Issue
Block a user