From 7d9b4b7bb7a9244c09dadac79bcb312c24a201af Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 24 May 2026 14:30:56 +0900 Subject: service: dnsmasq: Add 'locals' configuration option. * gnu/services/dns.scm () [locals]: New field. (dnsmasq-shepherd-service): Use it. * doc/guix.texi (DNS Services): Document it. Change-Id: I1c2bc86c1636aa82451d1a38959380c3791fd8d4 --- doc/guix.texi | 6 ++++++ gnu/services/dns.scm | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7a8ec55b956..63cd99ac09c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -38221,6 +38221,12 @@ When false, all reverse lookups for private IP ranges are answered with When true, dnsmasq queries the servers in the same order as they appear in @var{servers}. +@item @code{locals} (default: @code{'()}) +Specify domain name @emph{patterns} which should be treated as local, +that is, for which there should be no delegation to upstream servers. +Provided pattern values should be of the form +@code{'("/vpn.example.com/")}. + @item @code{servers} (default: @code{'()}) Specify IP address of upstream servers directly. diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index d4f771b9b68..52ee99789df 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -70,6 +70,7 @@ dnsmasq-configuration-no-resolv? dnsmasq-configuration-forward-private-reverse-lookup? dnsmasq-configuration-query-servers-in-order? + dnsmasq-configuration-locals dnsmasq-configuration-servers dnsmasq-configuration-servers-file dnsmasq-configuration-addresses @@ -809,6 +810,8 @@ cache.size = 100 * MB (query-servers-in-order? dnsmasq-configuration-query-servers-in-order? (default #f)) ;boolean + (locals dnsmasq-configuration-locals + (default '())) (servers dnsmasq-configuration-servers (default '())) ;list of string (servers-file dnsmasq-configuration-servers-file @@ -868,7 +871,7 @@ cache.size = 100 * MB port local-service? listen-addresses ipv4? ipv6? resolv-file no-resolv? forward-private-reverse-lookup? query-servers-in-order? - servers addresses servers-file + locals servers addresses servers-file cache-size negative-cache? cpe-id tftp-enable? tftp-no-fail? @@ -916,6 +919,8 @@ cache.size = 100 * MB #$@(if servers-file (list #~(string-append "--servers-file=" #$servers-file)) '()) + #$@(map (cut format #f "--local=~a" <>) + locals) #$@(map (cut format #f "--server=~a" <>) servers) #$@(map (cut format #f "--address=~a" <>) -- cgit v1.2.3