dirmngr: Switch to an onion address if Tor is running.
authorWerner Koch <wk@gnupg.org>
Wed, 2 Dec 2015 10:49:41 +0000 (11:49 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 2 Dec 2015 11:27:35 +0000 (12:27 +0100)
commit28e2513721ff0cec920564d4087f3600cce8672e
tree2b1bc0386b58dc38ae85506976b5f873a68ef150
parent17ac843871d5f350f26edff0187f94ced923f534
dirmngr: Switch to an onion address if Tor is running.

* dirmngr/dirmngr.h (opt): Turn field 'keyserver' into an strlist.
* dirmngr/dirmngr.c (parse_rereadable_options): Allow multiple
--keyserver options.
* dirmngr/server.c (server_local_s): Add field 'tor_state'.
(release_uri_item_list): New.
(release_ctrl_keyservers): Use it.
(start_command_handler): Release list of keyservers.
(is_tor_running): New.
(cmd_getinfo): Re-implement "tor" subcommand using new fucntion.
(ensure_keyserver): Rewrite.
* g10/dirmngr-conf.skel: Add two keyserver options.
--

This feature is independent of --use-tor and automagically uses Tor if
available.  The dirmngr.conf file needs to specify two keyservers to
make this work.  For new installations this is done using the skeleton
file.  This feature requires the Libassuan 2.4.2 to work.

This patch also fixes a memory leak of opt.keyserver en passant.

Signed-off-by: Werner Koch <wk@gnupg.org>
dirmngr/dirmngr.c
dirmngr/dirmngr.h
dirmngr/server.c
doc/dirmngr.texi
g10/dirmngr-conf.skel