(address . guix-patches@gnu.org)(name . Sergey Trofimov)(address . sarg@sarg.org.ru)
* gnu/service/dns.scm: (<dnsmasq-configuration>)[extra-options]: Add.
* doc/guix.texi: Document (<dnsmasq-configuration>)[extra-options].
---
doc/guix.texi | 4 ++++
gnu/services/dns.scm | 7 +++++--
2 files changed, 9 insertions(+), 2 deletions(-)
Toggle diff (49 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 749d689ac1..17798becd5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -33498,6 +33498,10 @@ DNS Services
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 @@ (define-record-type* <dnsmasq-configuration>
(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 @@ (define (dnsmasq-shepherd-service config)
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 @@ (define (dnsmasq-shepherd-service config)
(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)))))
base-commit: 5c13ab50b9c7d44238c64e5337027f04ae1d9223
--
2.41.0