From 0c542dcd3dc4366fb8238bcabd055169b8bcb66b Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Tue, 29 Apr 2014 12:04:43 +0200 Subject: [PATCH] client: shorten default timeout with localhost and async resolving When chronyd is compiled with asynchronous name resolving, it should always respond quickly. Shorten the default chronyc timeout for localhost. --- chrony.texi.in | 4 +++- client.c | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/chrony.texi.in b/chrony.texi.in index 583d5ed..e7ccb94 100644 --- a/chrony.texi.in +++ b/chrony.texi.in @@ -4266,7 +4266,9 @@ in milliseconds. If no response is received from @code{chronyd}, the timeout is doubled and the request is resent. The maximum number of retries is configured with the @code{retries} command (@pxref{retries command}). -The default is 1000 milliseconds. +By default, the timeout is 1000 milliseconds or 100 milliseconds if +@code{chronyc} is contacting localhost (i.e. the `-h' option wasn't specified) +and @code{chronyd} was compiled with asynchronous name resolving. @c }}} @c {{{ tracking @node tracking command diff --git a/client.c b/client.c index a973963..f46b198 100644 --- a/client.c +++ b/client.c @@ -2703,7 +2703,7 @@ main(int argc, char **argv) const char *progname = argv[0]; const char *hostname = "localhost"; const char *conf_file = DEFAULT_CONF_FILE; - int quit = 0, ret = 1, multi = 0, auto_auth = 0; + int quit = 0, ret = 1, multi = 0, auto_auth = 0, short_timeout = 1; int port = DEFAULT_CANDM_PORT; /* Parse command line options */ @@ -2713,6 +2713,7 @@ main(int argc, char **argv) if (*argv) { hostname = *argv; } + short_timeout = 0; } else if (!strcmp(*argv, "-p")) { ++argv, --argc; if (*argv) { @@ -2746,6 +2747,12 @@ main(int argc, char **argv) } } + if (short_timeout) { +#ifdef FEAT_ASYNCDNS + initial_timeout /= 10; +#endif + } + if (isatty(0) && isatty(1) && isatty(2)) { on_terminal = 1; }