aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/dirmngr.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-12-20 08:53:58 +0000
committerWerner Koch <[email protected]>2016-12-20 08:53:58 +0000
commit81c012787fabf734d9c952c6f18ecac21929d4d8 (patch)
treea69f7064a65d66c5f623eb11d272f173e4f8f08f /dirmngr/dirmngr.c
parentdirmngr: Fix problems with the getsrv function. (diff)
downloadgnupg-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.c10
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;