mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
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>
This commit is contained in:
parent
17ac843871
commit
28e2513721
5 changed files with 132 additions and 31 deletions
|
@ -541,8 +541,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
|
|||
}
|
||||
FREE_STRLIST (opt.ignored_cert_extensions);
|
||||
http_register_tls_ca (NULL);
|
||||
xfree (opt.keyserver);
|
||||
opt.keyserver = NULL;
|
||||
FREE_STRLIST (opt.keyserver);
|
||||
/* Note: We do not allow resetting of opt.use_tor at runtime. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -622,8 +621,8 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
|
|||
case oUseTor: opt.use_tor = 1; break;
|
||||
|
||||
case oKeyServer:
|
||||
xfree (opt.keyserver);
|
||||
opt.keyserver = *pargs->r.ret_str? xtrystrdup (pargs->r.ret_str) : NULL;
|
||||
if (*pargs->r.ret_str)
|
||||
add_to_strlist (&opt.keyserver, pargs->r.ret_str);
|
||||
break;
|
||||
|
||||
case oNameServer:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue