diff options
author | Werner Koch <[email protected]> | 2016-12-20 08:53:58 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-12-20 08:53:58 +0000 |
commit | 81c012787fabf734d9c952c6f18ecac21929d4d8 (patch) | |
tree | a69f7064a65d66c5f623eb11d272f173e4f8f08f /dirmngr/dirmngr.c | |
parent | dirmngr: Fix problems with the getsrv function. (diff) | |
download | gnupg-81c012787fabf734d9c952c6f18ecac21929d4d8.tar.gz gnupg-81c012787fabf734d9c952c6f18ecac21929d4d8.zip |
dirmngr: New option --resolver-timeout.
* dirmngr/dns-stuff.c (DEFAULT_TIMEOUT): New.
(opt_timeout): New var.
(set_dns_timeout): New.
(libdns_res_open): Set the default timeout.
(libdns_res_wait): Use configurable timeout.
(resolve_name_libdns): Ditto.
* dirmngr/dirmngr.c (oResolverTimeout): New const.
(opts): New option --resolver-timeout.
(parse_rereadable_options): Set that option.
(main) <aGPGConfList>: Add --nameserver and --resolver-timeout.
* tools/gpgconf-comp.c (gc_options_dirmngr): Add --resolver-timeout
and --nameserver.
* dirmngr/http.c (connect_server): Fix yesterday introduced bug in
error diagnostic.
--
This timeout is a pretty crude thing because libdns has a few other
internal timeouts as well.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr/dirmngr.c')
-rw-r--r-- | dirmngr/dirmngr.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index bb4d9f3ef..5ee589e93 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -142,6 +142,7 @@ enum cmd_and_opt_values { oDisableCheckOwnSocket, oStandardResolver, oRecursiveResolver, + oResolverTimeout, aTest }; @@ -240,6 +241,7 @@ static ARGPARSE_OPTS opts[] = { ARGPARSE_s_s (oIgnoreCertExtension,"ignore-cert-extension", "@"), ARGPARSE_s_n (oStandardResolver, "standard-resolver", "@"), ARGPARSE_s_n (oRecursiveResolver, "recursive-resolver", "@"), + ARGPARSE_s_i (oResolverTimeout, "resolver-timeout", "@"), ARGPARSE_group (302,N_("@\n(See the \"info\" manual for a complete listing " "of all commands and options)\n")), @@ -550,6 +552,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread) /* Note: We do not allow resetting of opt.use_tor at runtime. */ disable_check_own_socket = 0; enable_standard_resolver (0); + set_dns_timeout (0); return 1; } @@ -636,6 +639,10 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread) set_dns_nameserver (pargs->r.ret_str); break; + case oResolverTimeout: + set_dns_timeout (pargs->r.ret_int); + break; + default: return 0; /* Not handled. */ } @@ -1376,6 +1383,9 @@ main (int argc, char **argv) es_printf ("use-tor:%lu:\n", flags | GC_OPT_FLAG_NONE); es_printf ("keyserver:%lu:\n", flags | GC_OPT_FLAG_NONE); + es_printf ("nameserver:%lu:\n", flags | GC_OPT_FLAG_NONE); + es_printf ("resolver-timeout:%lu:%u\n", + flags | GC_OPT_FLAG_DEFAULT, 0); } cleanup (); return !!rc; |