From patchwork Fri Nov 13 13:42:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonio Quartulli X-Patchwork-Id: 10745 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4jQz3R133Vz3wh2 for ; Fri, 13 Nov 2026 13:42:59 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "YE2" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4jQz3P3XLhz87S for ; Fri, 13 Nov 2026 13:42:57 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4jQz3P2nVPz2xk1 for ; Fri, 13 Nov 2026 13:42:57 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4jQz3L5Rsfz2xSl for ; Fri, 13 Nov 2026 13:42:54 +0000 (UTC) Received: from mout-b-105.mailbox.org (mout-b-105.mailbox.org [195.10.208.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bit raw public key) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "*.mailbox.org", Issuer "Thawte TLS RSA CA G1" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4jQz3K4NTHzL3 for ; Fri, 13 Nov 2026 13:42:53 +0000 (UTC) Authentication-Results: mail01.ipfire.org; dkim=pass header.d=mandelbit.com header.s=MBO0001 header.b=gfqOaGPs; spf=pass (mail01.ipfire.org: domain of antonio@mandelbit.com designates 195.10.208.50 as permitted sender) smtp.mailfrom=antonio@mandelbit.com; dmarc=none ARC-Seal: i=1; a=rsa-sha256; d=lists.ipfire.org; s=202003rsa; cv=none; t=1794577374; b=YnSrI9A/w9cdBTeJwEbVlzqrO8AsDFrZNwWqSmD07cGfbrgKia9Ni06RecfNUzzEsOLAx3 TVG+melmwBrYQ1itH9SgfA4oa4y2yUb2M58xlVBXS2P70I9MNOWHpraBKo4jVUEfIe0GIw 8+OgGoXQVzMB24YAd8SMGKRpqChr/6Ltkp/wD7cGJLVHusUasreQ2MY1OwYN06SSEK89+H DfE2Q5Na6W4YTTNYlEHXKh3TTZelflDkg9KX54HWbA+vUeYgTc4qa0wUVK+SjfTIRTYlq3 VW2SxQPzRUlHljKuaGYYSgL6u75oJMRRQ824TpvZEDHIKDk4YfPm7t2YDrpfkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1794577374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5UBmv4+tIheMCeT3wrxikoiDrJlsn3KpKR6Kevoc65w=; b=Ze4c3nWDY+U+P0EdrBaMT8e91vQG+/VV+yS75LFY77SibmxIwOqbmbbnWIF1tAZPJsjzzs HVJw4rfub3A+OqSr/1eA79vPX++KftVjvhNNIhULq5mF5EKaPJ7d/laT2glGIq8PxmVhed H/ZUAtf6zpcA1HVutIOqgERYNGJHcmcsDG6uRM3ZTw9tuWDFnOSlxpHLnRuMu02jI3H0Ia 8mK8l+dMQTQUBaVewdvBkTecr4KU8KG8JzPZpFcZS68Z8sl4zA0hSODCxqKGavnhpbn9cc 5Jpz2H467naizUCTPtdajAIp+T+biH1MWNIApULqEEyZDiw9Jm9eXU6JtnTqQA== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=mandelbit.com header.s=MBO0001 header.b=gfqOaGPs; spf=pass (mail01.ipfire.org: domain of antonio@mandelbit.com designates 195.10.208.50 as permitted sender) smtp.mailfrom=antonio@mandelbit.com; dmarc=none Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519MLKEM768 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-b-105.mailbox.org (Postfix) with ESMTPS id 4jQz3H0Lvxz9tHh; Fri, 13 Nov 2026 14:42:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandelbit.com; s=MBO0001; t=1794577371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5UBmv4+tIheMCeT3wrxikoiDrJlsn3KpKR6Kevoc65w=; b=gfqOaGPscAxX6SsEI4+x1ENhtR3iSTf8ItgMxUpm54mxWp73C5ZjB70AtqXshMUmdU3T5O bzvipx/yRSQcLjEQfQoOAKeIDa5nGQ8k6Fh6msIRKdMhNTueNGPUC423SwyGvwHy2MuV9g 3fyCURznTk0hREFjdNxIY9ZRoGVHkhnc81hel0LVSM0tinRSSALr+XsOoX43t3cniH4tNF ZBzZGaMBMRz+SURcfr+KX97R91lvqDeTiaBy7IiNIs137XpWy89KkFfTpJlz7ow9kCxJ9r GyLcIhSdmqNL0e00r/90tMElmyOOY65z/wPKKcdWuOEE5Xoz6mUIrelGf0xX7A== From: Antonio Quartulli To: development@lists.ipfire.org Cc: Antonio Quartulli Subject: [PATCH 1/2] knot-resolver: Add force-reload Date: Fri, 13 Nov 2026 14:42:42 +0100 Message-ID: <20261113134243.382773-2-antonio@mandelbit.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261113134243.382773-1-antonio@mandelbit.com> References: <20261113134243.382773-1-antonio@mandelbit.com> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 X-Spamd-Result: default: False [-8.46 / 11.00]; NEURAL_HAM(-3.00)[-1.000]; BAYES_HAM(-3.00)[100.00%]; R_DKIM_ALLOW(-1.51)[mandelbit.com:s=MBO0001]; MID_CONTAINS_FROM(1.00)[]; SPF_REPUTATION_HAM(-0.88)[-0.87643658127081]; DKIM_REPUTATION(-0.88)[-0.87643658127081]; R_MISSING_CHARSET(0.50)[]; RCVD_IN_DNSWL_LOW(-0.20)[195.10.208.50:from,2001:67c:2050:b231:465::1:received]; R_SPF_ALLOW(-0.20)[+ip4:195.10.208.0/24]; R_DKIM_ALIGNED(-0.10)[strict]; MX_GOOD(-0.10)[mxext4.mailbox.org]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_NA(0.00)[mandelbit.com]; IP_REPUTATION_HAM(0.00)[asn: 199118(-0.35), country: DE(-0.01), ip: 195.10.208.50(0.00)]; DKIM_TRACE(0.00)[mandelbit.com:+]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:199118, ipnet:195.10.208.0/24, country:DE]; FROM_HAS_DN(0.00)[] X-Rspamd-Server: mail01.haj.ipfire.org X-Rspamd-Queue-Id: 4jQz3K4NTHzL3 X-Rspamd-Action: no action A reload doesn't restart the workers when config.yaml is unchanged, so they keep what their Lua script set up at startup. force-reload (also available through dnsctrl) replaces them with a rolling restart. Signed-off-by: Antonio Quartulli --- src/initscripts/system/knot-resolver | 9 ++++++++- src/misc-progs/dnsctrl.c | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/initscripts/system/knot-resolver b/src/initscripts/system/knot-resolver index 980a095f3..a27323b37 100644 --- a/src/initscripts/system/knot-resolver +++ b/src/initscripts/system/knot-resolver @@ -45,6 +45,13 @@ case "${1}" in --config=/etc/knot-resolver/config.yaml reload ;; + force-reload) + # Replace the workers too, so that they re-run the Lua script + # (e.g. to register the DNS-over-TLS forwarders) + /usr/bin/kresctl \ + --config=/etc/knot-resolver/config.yaml reload --force + ;; + restart) ${0} stop sleep 1 @@ -56,7 +63,7 @@ case "${1}" in ;; *) - echo "Usage: ${0} {start|stop|reload|restart|status}" + echo "Usage: ${0} {start|stop|reload|force-reload|restart|status}" exit 1 ;; esac diff --git a/src/misc-progs/dnsctrl.c b/src/misc-progs/dnsctrl.c index 84b0ae211..66007c8f7 100644 --- a/src/misc-progs/dnsctrl.c +++ b/src/misc-progs/dnsctrl.c @@ -28,6 +28,13 @@ int main(int argc, char** argv) { return run("/etc/rc.d/init.d/knot-resolver", args); + } else if (strcmp(argv[1], "force-reload") == 0) { + char* args[] = { + "force-reload", NULL, + }; + + return run("/etc/rc.d/init.d/knot-resolver", args); + } else if (strcmp(argv[1], "sync-rpzs") == 0) { char* args[] = { NULL,