mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
dirmngr: Support Tor hidden services.
* dirmngr/dns-stuff.c (is_onion_address): New. * dirmngr/ks-engine-hkp.c (hostinfo_s): Add field "onion". (map_host): Special case onion addresses. (ks_hkp_print_hosttable): Print an 'O' for an onion address. * dirmngr/http.c (connect_server): Special case onion addresses. -- Note that this requires the latest libassuan from git. Onion addresses are always support regardless of the --use-tor flag. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
7735bbe539
commit
4524a2a371
4 changed files with 62 additions and 2 deletions
|
@ -2212,6 +2212,32 @@ connect_server (const char *server, unsigned short port,
|
|||
init_sockets ();
|
||||
#endif /*Windows*/
|
||||
|
||||
/* Onion addresses require special treatment. */
|
||||
if (is_onion_address (server))
|
||||
{
|
||||
#ifdef ASSUAN_SOCK_TOR
|
||||
|
||||
my_unprotect ();
|
||||
sock = assuan_sock_connect_byname (server, port, 0, NULL,
|
||||
ASSUAN_SOCK_TOR);
|
||||
my_protect ();
|
||||
|
||||
if (sock == ASSUAN_INVALID_FD)
|
||||
{
|
||||
if (errno == EHOSTUNREACH)
|
||||
*r_host_not_found = 1;
|
||||
log_error ("can't connect to '%s': %s\n", server, strerror (errno));
|
||||
}
|
||||
return sock;
|
||||
|
||||
#else /*!ASSUAN_SOCK_TOR*/
|
||||
|
||||
gpg_err_set_errno (ENETUNREACH);
|
||||
return -1; /* Out of core. */
|
||||
|
||||
#endif /*!HASSUAN_SOCK_TOR*/
|
||||
}
|
||||
|
||||
#ifdef USE_DNS_SRV
|
||||
/* Do the SRV thing */
|
||||
if (srvtag)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue