summaryrefslogtreecommitdiff
path: root/gnu/services/dns.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/services/dns.scm')
-rw-r--r--gnu/services/dns.scm58
1 files changed, 52 insertions, 6 deletions
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index fd849d08e8..d55ee3e4fc 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -55,6 +55,38 @@
dnsmasq-service-type
dnsmasq-configuration
+ dnsmasq-configuration-package
+ dnsmasq-configuration-shepherd-provision
+ dnsmasq-configuration-shepherd-requirement
+ dnsmasq-configuration-pid-file
+ dnsmasq-configuration-no-hosts?
+ dnsmasq-configuration-port
+ dnsmasq-configuration-local-service?
+ dnsmasq-configuration-listen-address
+ dnsmasq-configuration-resolv-file
+ dnsmasq-configuration-no-resolv?
+ dnsmasq-configuration-forward-private-reverse-lookup?
+ dnsmasq-configuration-query-servers-in-order?
+ dnsmasq-configuration-servers
+ dnsmasq-configuration-servers-file
+ dnsmasq-configuration-addresses
+ dnsmasq-configuration-cache-size
+ dnsmasq-configuration-negative-cache?
+ dnsmasq-configuration-cpe-id
+ dnsmasq-configuration-tftp-enable?
+ dnsmasq-configuration-tftp-no-fail?
+ dnsmasq-configuration-tftp-single-port?
+ dnsmasq-tftp-secure?
+ dnsmasq-tftp-max
+ dnsmasq-tftp-mtu
+ dnsmasq-tftp-no-blocksize?
+ dnsmasq-tftp-lowercase?
+ dnsmasq-tftp-port-range
+ dnsmasq-tftp-root
+ dnsmasq-tftp-unique-root
+ dnsmasq-configuration-conf-file
+ dnsmasq-configuration-conf-dir
+ dnsmasq-configuration-extra-options
unbound-service-type
unbound-configuration
@@ -752,14 +784,14 @@ cache.size = 100 * MB
(default '(user-processes networking)))
(no-hosts? dnsmasq-configuration-no-hosts?
(default #f)) ;boolean
+ (pid-file dnsmasq-configuration-pid-file
+ (default "/run/dnsmasq.pid")) ;string
(port dnsmasq-configuration-port
(default 53)) ;integer
(local-service? dnsmasq-configuration-local-service?
(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?
@@ -803,7 +835,13 @@ cache.size = 100 * MB
(tftp-root dnsmasq-tftp-root
(default "/var/empty,lo")) ;string
(tftp-unique-root dnsmasq-tftp-unique-root
- (default #f))) ;"" or "ip" or "mac"
+ (default #f)) ;"" or "ip" or "mac"
+ (conf-file dnsmasq-configuration-conf-file
+ (default '())) ;list of string|file-like
+ (conf-dir dnsmasq-configuration-conf-dir
+ (default #f)) ;string|file-like
+ (extra-options dnsmasq-configuration-extra-options
+ (default '()))) ;list of string
(define (warn-deprecated-dnsmasq-configuration-provision value)
(when (pair? value)
@@ -818,6 +856,7 @@ cache.size = 100 * MB
provision
shepherd-provision
shepherd-requirement
+ pid-file
no-hosts?
port local-service? listen-addresses
resolv-file no-resolv?
@@ -829,7 +868,8 @@ 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 extra-options)
+ tftp-root tftp-unique-root
+ conf-file conf-dir extra-options)
(shepherd-service
(provision (or provision shepherd-provision))
(requirement shepherd-requirement)
@@ -838,7 +878,7 @@ cache.size = 100 * MB
(list
#$(file-append package "/sbin/dnsmasq")
"--keep-in-foreground"
- "--pid-file=/run/dnsmasq.pid"
+ (string-append "--pid-file=" #$pid-file)
#$@(if no-hosts?
'("--no-hosts")
'())
@@ -909,8 +949,14 @@ cache.size = 100 * MB
(format #f "--tftp-unique-root=~a" tftp-unique-root)
(format #f "--tftp-unique-root")))
'())
+ #$@(map (lambda (conf-file)
+ #~(string-append "--conf-file=" #$conf-file))
+ conf-file)
+ #$@(if conf-dir
+ (list #~(string-append "--conf-dir=" #$conf-dir))
+ '())
#$@extra-options)
- #:pid-file "/run/dnsmasq.pid"))
+ #:pid-file #$pid-file))
(stop #~(make-kill-destructor)))))
(define (dnsmasq-activation config)