aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/dirmngr.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-07-26 08:58:15 +0000
committerWerner Koch <[email protected]>2017-07-26 08:58:15 +0000
commitfd68bdb61ec4f8441da6d3023a8da4315df54cec (patch)
treef832e63f5887ea1e380989857315dfb152fbac0c /dirmngr/dirmngr.c
parentagent,dirmngr: Check for homedir removal also using stat(2). (diff)
downloadgnupg-fd68bdb61ec4f8441da6d3023a8da4315df54cec.tar.gz
gnupg-fd68bdb61ec4f8441da6d3023a8da4315df54cec.zip
dirmngr: Auto-enable Tor on startup or reload.
* dirmngr/dirmngr.c (dirmngr_use_tor): Test for Tor availibility. -- GnuPG-bug-id: 2935 Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr/dirmngr.c')
-rw-r--r--dirmngr/dirmngr.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
index 1ddc568a0..0d133c61b 100644
--- a/dirmngr/dirmngr.c
+++ b/dirmngr/dirmngr.c
@@ -532,7 +532,17 @@ dirmngr_use_tor (void)
{
if (tor_mode == TOR_MODE_AUTO)
{
- /* FIXME: Figure out whether Tor is running. */
+ /* Figure out whether Tor is running. */
+ assuan_fd_t sock;
+
+ sock = assuan_sock_connect_byname (NULL, 0, 0, NULL, ASSUAN_SOCK_TOR);
+ if (sock == ASSUAN_INVALID_FD)
+ tor_mode = TOR_MODE_NO;
+ else
+ {
+ tor_mode = TOR_MODE_YES;
+ assuan_sock_close (sock);
+ }
}
if (tor_mode == TOR_MODE_FORCE)