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, From patchwork Fri Nov 13 13:42:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonio Quartulli X-Patchwork-Id: 10746 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) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4jQz3R4fftz3wp9 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 4jQz3Q44sHz1Tc for ; Fri, 13 Nov 2026 13:42:58 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4jQz3Q35rgz2yml for ; Fri, 13 Nov 2026 13:42:58 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (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 4jQz3M5kcpz2xV5 for ; Fri, 13 Nov 2026 13:42:55 +0000 (UTC) Received: from mout-b-210.mailbox.org (mout-b-210.mailbox.org [195.10.208.40]) (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 4jQz3K6QPWz1wT 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=KVByk9Cl; spf=pass (mail01.ipfire.org: domain of antonio@mandelbit.com designates 195.10.208.40 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=JtitwCR+IgQFVf35l2bNuwYCIfdSSF5VLALsvJQ/5C6+0cz1Ox2FHP5zR3N2eW2l30jtiT VMnDLcbn/a4QMb32ISLC3mZ5J9igevNUqs1MqtEnRtqc40NoJt8qWYDaF+++P1HgF59RzC DsRF6u5kWIiPxFLK44vy5P/06qH7BGnMCqOZfwLr+73rmA2jkJvpsQmYCEEv8oDoTjz5Ph ZtVdrP/sPWjpgXINWM76GvjgakixqUz6lVbaprkwwBpA+2PkeQsrgtq8rY9+mYG/pAfznO Ycae2ochLjXpBlwIO7Pv23sHGT9qR09ufW3YVmbTNJ2cM2/L3iRz7brXxxERtw== 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=rDkft4NTn9Khie4JFF8MFtdYSTBwEr6l5I/dKg7cD9U=; b=Ge36PPF8Bn7VqeOxixYqkKRrFxSxb35E6o22yNNkbwGofnRM13nVrzHSARzEjvi9IKO8q+ g1l+PI+QxI79ruVB2iB1MvfkcOP9gejhw9ZYSSlHbmKk08h0JFll7jVvW7SxFPUSGGF3ox CcrZ1kHQGGJlJQHXkdmhXua91wMpjaiE+PWUAzd6cAWzSu/5sMdmtP9qZcUPaMyqCckDQC uQuGeU0lrqQVU3Bh8oT+TEIs9hbTMvmG4u77rOsQhyyRNuo7xmpPMYPdRAiVzGrOfAx4nr 6I+KRfZ69KSG5EdjizBfx9wy7/f6xnkV2im6WSz2rs17ahje68HZYO0FFxO+SQ== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=mandelbit.com header.s=MBO0001 header.b=KVByk9Cl; spf=pass (mail01.ipfire.org: domain of antonio@mandelbit.com designates 195.10.208.40 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-210.mailbox.org (Postfix) with ESMTPS id 4jQz3H2tCFzFrN8; 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=rDkft4NTn9Khie4JFF8MFtdYSTBwEr6l5I/dKg7cD9U=; b=KVByk9ClqCviLryFQ6kQzkSIutiAJjq9IgWoGQjg/4mLQZkbqk5jhxRpwrsZVbcRbhY7mS 7KSIx8GPnzpjjmzdk6LMoXA4rEnitMPvoI4TsExzWCNS/gY4sr7tU0EIRlztNvw/EiDEpv tcWyaL/njtR5B6ctWMx2KgGdYQYTXOviSjkb6Er9Zv7vtPkWfToAWhxUeZTMKVl54VmISB REHHan9s6MOBG8z2ZF8QD/OPCxMKkhrasxb5nUMIxdxGa2oCaY4I7QJtMSNsDe1m9fWlHW xHgdFY9FiRPAxjNowl0U4gc1ygF7IWhQSGxb+PWJJ12MoJDmnNgF21+zNutlMQ== From: Antonio Quartulli To: development@lists.ipfire.org Cc: Antonio Quartulli Subject: [PATCH 2/2] dns.cgi: Force a reload after every change Date: Fri, 13 Nov 2026 14:42:43 +0100 Message-ID: <20261113134243.382773-3-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)[2001:67c:2050:b231:465::1:received,195.10.208.40:from]; R_SPF_ALLOW(-0.20)[+ip4:195.10.208.0/24:c]; 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.40(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: 4jQz3K6QPWz1wT X-Rspamd-Action: no action The workers only set up DNS-over-TLS forwarders at startup, so after enabling TLS they sent plain DNS to port 853 until knot-resolver was restarted. Changes to the server list didn't reload at all. Fixes: #14781 Signed-off-by: Antonio Quartulli --- html/cgi-bin/dns.cgi | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi index 713b0a308..d0080f7b6 100644 --- a/html/cgi-bin/dns.cgi +++ b/html/cgi-bin/dns.cgi @@ -105,9 +105,6 @@ if ($cgiparams{'GENERAL'} eq _('Save')) { # Call function to handle unbound restart, etc. &_handle_unbound_and_more() } - - # Reload DNS - &General::system_background("/usr/local/bin/dnsctrl", "reload"); } ### @@ -823,6 +820,10 @@ END # Private function to handle the restart of unbound and more. sub _handle_unbound_and_more () { + # Reload DNS and restart the workers, as they only read the + # forwarders when they start + &General::system_background("/usr/local/bin/dnsctrl", "force-reload"); + # Check if the IDS is running. if(&IDS::ids_is_running()) { # Re-generate the file which contains the DNS Server