From f1363bd18fcbdc2fdf673df73f0f4267e28ea1e7 Mon Sep 17 00:00:00 2001 From: Libor Peltan <libor.peltan@nic.cz> Date: Fri, 5 Nov 2021 11:37:11 +0100 Subject: [PATCH] kdig: interpret zero timeout as infinity --- doc/man/kdig.1in | 4 ++-- doc/man_kdig.rst | 4 ++-- src/utils/common/params.c | 6 +----- src/utils/kdig/kdig_params.c | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/doc/man/kdig.1in b/doc/man/kdig.1in index a6bd0e9cef..defe70eb65 100644 --- a/doc/man/kdig.1in +++ b/doc/man/kdig.1in @@ -315,8 +315,8 @@ Use EDNS version (default is 0). .TP \fB+\fP[\fBno\fP]\fBtimeout\fP=\fIT\fP Set the wait\-for\-reply interval in seconds (default is 5 seconds). This timeout -applies to each query attempt. An attempt to set T to less than 1 will result -in a query timeout of 1 second being applied. +applies to each query attempt. Zero value or \fInotimeout\fP is intepreted as +infinity. .TP \fB+\fP[\fBno\fP]\fBretry\fP=\fIN\fP Set the number (>=0) of UDP retries (default is 2). This doesn\(aqt apply to diff --git a/doc/man_kdig.rst b/doc/man_kdig.rst index d84572ca43..a3aa4d0e53 100644 --- a/doc/man_kdig.rst +++ b/doc/man_kdig.rst @@ -294,8 +294,8 @@ Options **+**\ [\ **no**\ ]\ **timeout**\ =\ *T* Set the wait-for-reply interval in seconds (default is 5 seconds). This timeout - applies to each query attempt. An attempt to set T to less than 1 will result - in a query timeout of 1 second being applied. + applies to each query attempt. Zero value or *notimeout* is intepreted as + infinity. **+**\ [\ **no**\ ]\ **retry**\ =\ *N* Set the number (>=0) of UDP retries (default is 2). This doesn't apply to diff --git a/src/utils/common/params.c b/src/utils/common/params.c index 684a7d11db..6f8396f8dc 100644 --- a/src/utils/common/params.c +++ b/src/utils/common/params.c @@ -333,11 +333,7 @@ int params_parse_wait(const char *value, int32_t *dst) return ret; } - // Check for minimal value. - if (num < 1) { - num = 1; - // Reduce maximal value. Poll takes signed int in milliseconds. - } else if (num > INT32_MAX / 1000) { + if (num < 1 || num > INT32_MAX / 1000) { num = INT32_MAX / 1000; } diff --git a/src/utils/kdig/kdig_params.c b/src/utils/kdig/kdig_params.c index bd3f1b46d2..0528bde2de 100644 --- a/src/utils/kdig/kdig_params.c +++ b/src/utils/kdig/kdig_params.c @@ -1219,7 +1219,7 @@ static int opt_notimeout(const char *arg, void *query) { query_t *q = query; - q->wait = DEFAULT_TIMEOUT_DIG; + (void)params_parse_wait("0", &q->wait); return KNOT_EOK; } -- GitLab