From f37e15e9134ff22d03c4997fd1c76754b67d3539 Mon Sep 17 00:00:00 2001 From: Alexey Tikhonov Date: Tue, 19 Jul 2022 14:28:35 +0200 Subject: [PATCH] RESPONDER: fixed condition in responder_idle_handler() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Man page says about `responder_idle_timeout` the following: ``` number of seconds that an SSSD responder process can be up without being used. ``` Idle timer fires every responder_idle_timeout/2 seconds and checks if current_time > (last_request_time + timeout). In a trivial case - no additional requests after initial one / startup - condition will became 'true' only when timer fires for a 3rd time, i.e. after 3*(timeout/2) seconds. This contradicts man page statement. This patch changes condition to '>=' so that responder would be terminated in 2*(timeout/2) seconds. Reviewed-by: Alejandro Lopez Reviewed-by: Pavel Březina (cherry picked from commit 473752e261d8d166b16f95fe4ddc8d320ae0faf4) --- src/responder/common/responder_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/responder/common/responder_common.c b/src/responder/common/responder_common.c index fb2a31bb0..4c6445311 100644 --- a/src/responder/common/responder_common.c +++ b/src/responder/common/responder_common.c @@ -374,7 +374,7 @@ static void responder_idle_handler(struct tevent_context *ev, goto end; } - if ((now - rctx->last_request_time) > rctx->idle_timeout) { + if ((now - rctx->last_request_time) >= rctx->idle_timeout) { /* This responder is idle. Terminate it */ DEBUG(SSSDBG_TRACE_INTERNAL, "Terminating idle responder [%p]\n", rctx); -- 2.37.3