From 10d8bbdabb9fb9f2041d2ab419906cb23b874a49 Mon Sep 17 00:00:00 2001 From: Sergey Trofimov Date: Wed, 1 May 2024 22:43:31 +0200 Subject: [PATCH] services: dnsmasq: Add escape hatch. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/service/dns.scm: ()[extra-options]: Add. * doc/guix.texi: Document ()[extra-options]. Signed-off-by: Ludovic Courtès Change-Id: I7d2df7aa5d3b041b69b2f8b3e311a7328c28a3be --- doc/guix.texi | 4 ++++ gnu/services/dns.scm | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 68c75f1416..0102fd0fad 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -33635,6 +33635,10 @@ separated by dashes, e.g.: @samp{01-02-03-04-aa-bb}. Note that resolving MAC addresses is only possible if the client is in the local network or obtained a DHCP lease from dnsmasq. +@item @code{extra-options} (default: @code{'()}) +This option provides an ``escape hatch'' for the user to provide arbitrary +command-line arguments to @command{dnsmasq} as a list of strings. + @end table @end deftp diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index 6608046909..043c34599c 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -739,6 +739,8 @@ cache.size = 100 * MB (default #t)) ;boolean (listen-addresses dnsmasq-configuration-listen-address (default '())) ;list of string + (extra-options dnsmasq-configuration-extra-options + (default '())) ;list of string (resolv-file dnsmasq-configuration-resolv-file (default "/etc/resolv.conf")) ;string (no-resolv? dnsmasq-configuration-no-resolv? @@ -798,7 +800,7 @@ cache.size = 100 * MB tftp-single-port? tftp-secure? tftp-max tftp-mtu tftp-no-blocksize? tftp-lowercase? tftp-port-range - tftp-root tftp-unique-root) + tftp-root tftp-unique-root extra-options) (shepherd-service (provision '(dnsmasq)) (requirement '(networking)) @@ -877,7 +879,8 @@ cache.size = 100 * MB (if (> (length tftp-unique-root) 0) (format #f "--tftp-unique-root=~a" tftp-unique-root) (format #f "--tftp-unique-root"))) - '())) + '()) + #$@extra-options) #:pid-file "/run/dnsmasq.pid")) (stop #~(make-kill-destructor)))))