me
/
guix
Archived
1
0
Fork 0

services: dnsmasq: Support the --address flag.

Introduce a new `addresses' field that translates to passing `--address='
multiple times to dnsmasq.

* gnu/services/dns.scm (<dnsmasq-configuration>): Add an addresses field.
(dnsmasq-shepherd-service): Match the addresses field and translate it to
multiple '--address=' flags.
* doc/guix.texi (DNS Services): Document it.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
master
Pierre Langlois 2020-04-10 17:00:47 +01:00 committed by 宋文武
parent f2531a254f
commit 5a0b78e62b
No known key found for this signature in database
GPG Key ID: D415BF253B515976
2 changed files with 26 additions and 1 deletions

View File

@ -78,6 +78,7 @@ Copyright @copyright{} 2020 Jack Hill@*
Copyright @copyright{} 2020 Naga Malleswari@*
Copyright @copyright{} 2020 Brice Waegeneire@*
Copyright @copyright{} 2020 R Veera Kumar@*
Copyright @copyright{} 2020 Pierre Langlois@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -21874,6 +21875,25 @@ When true, don't read @var{resolv-file}.
@item @code{servers} (default: @code{'()})
Specify IP address of upstream servers directly.
@item @code{addresses} (default: @code{'()})
For each entry, specify an IP address to return for any host in the
given domains. Queries in the domains are never forwarded and always
replied to with the specified IP address.
This is useful for redirecting hosts locally, for example:
@lisp
(service dnsmasq-service-type
(dnsmasq-configuration
(addresses
'(; Redirect to a local web-server.
"/example.org/127.0.0.1"
; Redirect subdomain to a specific IP.
"/subdomain.example.org/192.168.1.42"))))
@end lisp
Note that rules in @file{/etc/hosts} take precedence over this.
@item @code{cache-size} (default: @code{150})
Set the size of dnsmasq's cache. Setting the cache size to zero
disables caching.

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -748,6 +749,8 @@ cache.size = 100 * MB
(default #f)) ;boolean
(servers dnsmasq-configuration-servers
(default '())) ;list of string
(addresses dnsmasq-configuration-addresses
(default '())) ;list of string
(cache-size dnsmasq-configuration-cache-size
(default 150)) ;integer
(negative-cache? dnsmasq-configuration-negative-cache?
@ -759,7 +762,7 @@ cache.size = 100 * MB
no-hosts?
port local-service? listen-addresses
resolv-file no-resolv? servers
cache-size negative-cache?)
addresses cache-size negative-cache?)
(shepherd-service
(provision '(dnsmasq))
(requirement '(networking))
@ -783,6 +786,8 @@ cache.size = 100 * MB
'())
#$@(map (cut format #f "--server=~a" <>)
servers)
#$@(map (cut format #f "--address=~a" <>)
addresses)
#$(format #f "--cache-size=~a" cache-size)
#$@(if negative-cache?
'()