GNU bug report logs - #61956
[PATCH] services: dns: Extend dnsmasq-configuration.

Previous Next

Package: guix-patches;

Reported by: Sergey Trofimov <sarg <at> sarg.org.ru>

Date: Sat, 4 Mar 2023 08:28:01 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 61956 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Sat, 04 Mar 2023 08:28:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Sergey Trofimov <sarg <at> sarg.org.ru>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 04 Mar 2023 08:28:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Sergey Trofimov <sarg <at> sarg.org.ru>
To: guix-patches <at> gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: [PATCH] services: dns: Extend dnsmasq-configuration.
Date: Sat,  4 Mar 2023 09:27:19 +0100
---
 gnu/services/dns.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 50753b7ab6..3a6a005fb7 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
                     (default #f))       ;boolean
   (servers          dnsmasq-configuration-servers
                     (default '()))      ;list of string
+  (servers-file     dnsmasq-configuration-servers-file
+                    (default #f))       ;string
   (addresses        dnsmasq-configuration-addresses
                     (default '()))      ;list of string
   (cache-size       dnsmasq-configuration-cache-size
@@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
      port local-service? listen-addresses
      resolv-file no-resolv?
      forward-private-reverse-lookup? query-servers-in-order?
-     servers addresses
+     servers addresses servers-file
      cache-size negative-cache?
      cpe-id
      tftp-enable? tftp-no-fail?
@@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
                  #$@(if query-servers-in-order?
                         '("--strict-order")
                         '())
+                 #$@(if servers-file
+                        (list (format #f "--servers-file=~a" servers-file))
+                        '())
                  #$@(map (cut format #f "--server=~a" <>)
                          servers)
                  #$@(map (cut format #f "--address=~a" <>)
@@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
                         '("--tftp-single-port")
                         '())
                  #$@(if tftp-secure?
-                        '("--tftp-secure?")
+                        '("--tftp-secure")
                         '())
                  #$@(if tftp-max
                         (list (format #f "--tftp-max=~a" tftp-max))
-- 
2.39.1





Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Sat, 04 Mar 2023 08:41:01 GMT) Full text and rfc822 format available.

Message #8 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Sergey Trofimov <sarg <at> sarg.org.ru>
To: 61956 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: [PATCH v2] services: dns: Extend dnsmasq-configuration.
Date: Sat,  4 Mar 2023 09:40:30 +0100
---
 doc/guix.texi        | 3 +++
 gnu/services/dns.scm | 9 +++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 74658dbc86..ca66041d12 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31502,6 +31502,9 @@ in @var{servers}.
 @item @code{servers} (default: @code{'()})
 Specify IP address of upstream servers directly.
 
+@item @code{servers-file} (default: @code{#f})
+Specify file containing upstream servers. This file is re-read when dnsmasq receives SIGHUP.
+
 @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
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 50753b7ab6..3a6a005fb7 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
                     (default #f))       ;boolean
   (servers          dnsmasq-configuration-servers
                     (default '()))      ;list of string
+  (servers-file     dnsmasq-configuration-servers-file
+                    (default #f))       ;string
   (addresses        dnsmasq-configuration-addresses
                     (default '()))      ;list of string
   (cache-size       dnsmasq-configuration-cache-size
@@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
      port local-service? listen-addresses
      resolv-file no-resolv?
      forward-private-reverse-lookup? query-servers-in-order?
-     servers addresses
+     servers addresses servers-file
      cache-size negative-cache?
      cpe-id
      tftp-enable? tftp-no-fail?
@@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
                  #$@(if query-servers-in-order?
                         '("--strict-order")
                         '())
+                 #$@(if servers-file
+                        (list (format #f "--servers-file=~a" servers-file))
+                        '())
                  #$@(map (cut format #f "--server=~a" <>)
                          servers)
                  #$@(map (cut format #f "--address=~a" <>)
@@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
                         '("--tftp-single-port")
                         '())
                  #$@(if tftp-secure?
-                        '("--tftp-secure?")
+                        '("--tftp-secure")
                         '())
                  #$@(if tftp-max
                         (list (format #f "--tftp-max=~a" tftp-max))
-- 
2.39.1





Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Fri, 10 Mar 2023 07:35:02 GMT) Full text and rfc822 format available.

Message #11 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Tropin <andrew <at> trop.in>
To: Sergey Trofimov <sarg <at> sarg.org.ru>, 61956 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: Re: [bug#61956] [PATCH v2] services: dns: Extend
 dnsmasq-configuration.
Date: Fri, 10 Mar 2023 11:34:26 +0400
[Message part 1 (text/plain, inline)]
On 2023-03-04 09:40, Sergey Trofimov wrote:

Hi Sergey!

Thank you for the patch, please add information to the commit message
body.  Here is an example:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8390b47c04

> ---
>  doc/guix.texi        | 3 +++
>  gnu/services/dns.scm | 9 +++++++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 74658dbc86..ca66041d12 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -31502,6 +31502,9 @@ in @var{servers}.
>  @item @code{servers} (default: @code{'()})
>  Specify IP address of upstream servers directly.
>  
> +@item @code{servers-file} (default: @code{#f})
> +Specify file containing upstream servers. This file is re-read when dnsmasq receives SIGHUP.
> +
>  @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
> diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
> index 50753b7ab6..3a6a005fb7 100644
> --- a/gnu/services/dns.scm
> +++ b/gnu/services/dns.scm
> @@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
>                      (default #f))       ;boolean
>    (servers          dnsmasq-configuration-servers
>                      (default '()))      ;list of string
> +  (servers-file     dnsmasq-configuration-servers-file
> +                    (default #f))       ;string

I would expect it to be a file-like rather than string, so we are sure
that the configuration file is present.  WDYT?

>    (addresses        dnsmasq-configuration-addresses
>                      (default '()))      ;list of string
>    (cache-size       dnsmasq-configuration-cache-size
> @@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
>       port local-service? listen-addresses
>       resolv-file no-resolv?
>       forward-private-reverse-lookup? query-servers-in-order?
> -     servers addresses
> +     servers addresses servers-file
>       cache-size negative-cache?
>       cpe-id
>       tftp-enable? tftp-no-fail?
> @@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
>                   #$@(if query-servers-in-order?
>                          '("--strict-order")
>                          '())
> +                 #$@(if servers-file
> +                        (list (format #f "--servers-file=~a" servers-file))
> +                        '())
>                   #$@(map (cut format #f "--server=~a" <>)
>                           servers)
>                   #$@(map (cut format #f "--address=~a" <>)
> @@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
>                          '("--tftp-single-port")
>                          '())
>                   #$@(if tftp-secure?
> -                        '("--tftp-secure?")
> +                        '("--tftp-secure")
>                          '())
>                   #$@(if tftp-max
>                          (list (format #f "--tftp-max=~a" tftp-max))

-- 
Best regards,
Andrew Tropin
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Fri, 10 Mar 2023 08:37:01 GMT) Full text and rfc822 format available.

Message #14 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Sergey Trofimov <sarg <at> sarg.org.ru>
To: 61956 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: [PATCH v3] services: dns: Extend dnsmasq-configuration.
Date: Fri, 10 Mar 2023 09:36:13 +0100
* gnu/service/dns.scm: (<dnsmasq-configuration>)[servers-file]: Add.
* doc/guix.texi: Document (<dnsmasq-configuration>)[servers-file].
---
 doc/guix.texi        | 3 +++
 gnu/services/dns.scm | 9 +++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6671ba9305..f62af051ab 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31502,6 +31502,9 @@ in @var{servers}.
 @item @code{servers} (default: @code{'()})
 Specify IP address of upstream servers directly.
 
+@item @code{servers-file} (default: @code{#f})
+Specify file containing upstream servers. This file is re-read when dnsmasq receives SIGHUP.
+
 @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
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 32fb8c0664..7ff34babdc 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
                     (default #f))       ;boolean
   (servers          dnsmasq-configuration-servers
                     (default '()))      ;list of string
+  (servers-file     dnsmasq-configuration-servers-file
+                    (default #f))       ;string
   (addresses        dnsmasq-configuration-addresses
                     (default '()))      ;list of string
   (cache-size       dnsmasq-configuration-cache-size
@@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
      port local-service? listen-addresses
      resolv-file no-resolv?
      forward-private-reverse-lookup? query-servers-in-order?
-     servers addresses
+     servers addresses servers-file
      cache-size negative-cache?
      cpe-id
      tftp-enable? tftp-no-fail?
@@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
                  #$@(if query-servers-in-order?
                         '("--strict-order")
                         '())
+                 #$@(if servers-file
+                        (list (format #f "--servers-file=~a" servers-file))
+                        '())
                  #$@(map (cut format #f "--server=~a" <>)
                          servers)
                  #$@(map (cut format #f "--address=~a" <>)
@@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
                         '("--tftp-single-port")
                         '())
                  #$@(if tftp-secure?
-                        '("--tftp-secure?")
+                        '("--tftp-secure")
                         '())
                  #$@(if tftp-max
                         (list (format #f "--tftp-max=~a" tftp-max))
-- 
2.39.2





Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Fri, 10 Mar 2023 08:53:01 GMT) Full text and rfc822 format available.

Message #17 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Sergey Trofimov <sarg <at> sarg.org.ru>
To: 61956 <at> debbugs.gnu.org
Cc: Andrew Tropin <andrew <at> trop.in>
Subject: Re: [bug#61956] [PATCH v2] services: dns: Extend
 dnsmasq-configuration.
Date: Fri, 10 Mar 2023 09:38:05 +0100
Andrew Tropin <andrew <at> trop.in> writes:

> [[PGP Signed Part:Undecided]]
> On 2023-03-04 09:40, Sergey Trofimov wrote:
>
> Hi Sergey!
>
> Thank you for the patch, please add information to the commit 
> message
> body.  Here is an example:
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8390b47c04
>

I have pushed v3 with a proper description.

>>    (servers          dnsmasq-configuration-servers
>>                      (default '()))      ;list of string
>> +  (servers-file     dnsmasq-configuration-servers-file
>> +                    (default #f))       ;string
>
> I would expect it to be a file-like rather than string, so we 
> are sure
> that the configuration file is present.  WDYT?
>

Hmm, my use-case is to generate this file in dhclient's hook, so 
that dnsmasq knows the domain supplied with the DHCP 
configuration.

Here is how I do that:

1. Define the hook which updates dnsmasq.servers and sends HUP to 
the daemon
(define dhclient-enter-hooks "
make_resolv_conf() {
   touch /etc/dnsmasq.servers
   sed -i '/#dhcp/,+1d' /etc/dnsmasq.servers
   cat <<EOF >>/etc/dnsmasq.servers
#dhcp
server=/${new_domain_name}/${new_domain_name_servers}
EOF

   kill -HUP $(cat /run/dnsmasq.pid)
}
")

2. Register the file in operating-system -> services
(extra-special-file "/etc/dhclient-enter-hooks"
       (plain-file "dhclient-enter-hooks"
                   dhclient-enter-hooks))

3. Add dnsmasq option
(servers-file "/etc/dnsmasq.servers")

Do you think making `servers-file` either string or file-like 
would be a way to go?




Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Fri, 10 Mar 2023 13:36:02 GMT) Full text and rfc822 format available.

Message #20 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Sergey Trofimov <sarg <at> sarg.org.ru>
To: 61956 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: [PATCH v4] services: dns: Extend dnsmasq-configuration.
Date: Fri, 10 Mar 2023 14:33:09 +0100
* gnu/service/dns.scm: (<dnsmasq-configuration>)[servers-file]: Add.
(<dnsmasq-configuration>)[tftp-secure?]: Fix typo in parameter name.
* doc/guix.texi: Document (<dnsmasq-configuration>)[servers-file].
---
 doc/guix.texi        |  4 ++++
 gnu/services/dns.scm | 11 ++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6671ba9305..debff95466 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31502,6 +31502,10 @@ in @var{servers}.
 @item @code{servers} (default: @code{'()})
 Specify IP address of upstream servers directly.
 
+@item @code{servers-file} (default: @code{#f})
+Specify file containing upstream servers. This file is re-read when dnsmasq receives SIGHUP.
+Could be either a string or a file-like object.
+
 @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
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 32fb8c0664..21af2b2611 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
                     (default #f))       ;boolean
   (servers          dnsmasq-configuration-servers
                     (default '()))      ;list of string
+  (servers-file     dnsmasq-configuration-servers-file
+                    (default #f))       ;string|file-like
   (addresses        dnsmasq-configuration-addresses
                     (default '()))      ;list of string
   (cache-size       dnsmasq-configuration-cache-size
@@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
      port local-service? listen-addresses
      resolv-file no-resolv?
      forward-private-reverse-lookup? query-servers-in-order?
-     servers addresses
+     servers addresses servers-file
      cache-size negative-cache?
      cpe-id
      tftp-enable? tftp-no-fail?
@@ -805,7 +807,7 @@ (define (dnsmasq-shepherd-service config)
      (requirement '(networking))
      (documentation "Run the dnsmasq DNS server.")
      (start #~(make-forkexec-constructor
-               '(#$(file-append package "/sbin/dnsmasq")
+               `(#$(file-append package "/sbin/dnsmasq")
                  "--keep-in-foreground"
                  "--pid-file=/run/dnsmasq.pid"
                  #$@(if no-hosts?
@@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
                  #$@(if query-servers-in-order?
                         '("--strict-order")
                         '())
+                 ,@(if #$servers-file
+                       (list (string-append "--servers-file=" #$servers-file))
+                       '())
                  #$@(map (cut format #f "--server=~a" <>)
                          servers)
                  #$@(map (cut format #f "--address=~a" <>)
@@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
                         '("--tftp-single-port")
                         '())
                  #$@(if tftp-secure?
-                        '("--tftp-secure?")
+                        '("--tftp-secure")
                         '())
                  #$@(if tftp-max
                         (list (format #f "--tftp-max=~a" tftp-max))
-- 
2.39.2





Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Fri, 10 Mar 2023 15:02:02 GMT) Full text and rfc822 format available.

Message #23 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Sergey Trofimov <sarg <at> sarg.org.ru>
To: 61956 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: [PATCH v5] services: dns: Extend dnsmasq-configuration.
Date: Fri, 10 Mar 2023 16:00:56 +0100
* gnu/service/dns.scm: (<dnsmasq-configuration>)[servers-file]: Add.
(<dnsmasq-configuration>)[tftp-secure?]: Fix typo in parameter name.
* doc/guix.texi: Document (<dnsmasq-configuration>)[servers-file].
---
 doc/guix.texi        |  4 ++++
 gnu/services/dns.scm | 11 ++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6671ba9305..debff95466 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31502,6 +31502,10 @@ in @var{servers}.
 @item @code{servers} (default: @code{'()})
 Specify IP address of upstream servers directly.
 
+@item @code{servers-file} (default: @code{#f})
+Specify file containing upstream servers. This file is re-read when dnsmasq receives SIGHUP.
+Could be either a string or a file-like object.
+
 @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
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 32fb8c0664..aaa2b6e47f 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
                     (default #f))       ;boolean
   (servers          dnsmasq-configuration-servers
                     (default '()))      ;list of string
+  (servers-file     dnsmasq-configuration-servers-file
+                    (default #f))       ;string|file-like
   (addresses        dnsmasq-configuration-addresses
                     (default '()))      ;list of string
   (cache-size       dnsmasq-configuration-cache-size
@@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
      port local-service? listen-addresses
      resolv-file no-resolv?
      forward-private-reverse-lookup? query-servers-in-order?
-     servers addresses
+     servers addresses servers-file
      cache-size negative-cache?
      cpe-id
      tftp-enable? tftp-no-fail?
@@ -805,7 +807,7 @@ (define (dnsmasq-shepherd-service config)
      (requirement '(networking))
      (documentation "Run the dnsmasq DNS server.")
      (start #~(make-forkexec-constructor
-               '(#$(file-append package "/sbin/dnsmasq")
+               (list #$(file-append package "/sbin/dnsmasq")
                  "--keep-in-foreground"
                  "--pid-file=/run/dnsmasq.pid"
                  #$@(if no-hosts?
@@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
                  #$@(if query-servers-in-order?
                         '("--strict-order")
                         '())
+                 #$@(if servers-file
+                       (list #~(string-append "--servers-file=" #$servers-file))
+                       '())
                  #$@(map (cut format #f "--server=~a" <>)
                          servers)
                  #$@(map (cut format #f "--address=~a" <>)
@@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
                         '("--tftp-single-port")
                         '())
                  #$@(if tftp-secure?
-                        '("--tftp-secure?")
+                        '("--tftp-secure")
                         '())
                  #$@(if tftp-max
                         (list (format #f "--tftp-max=~a" tftp-max))
-- 
2.39.2





Information forwarded to guix-patches <at> gnu.org:
bug#61956; Package guix-patches. (Mon, 13 Mar 2023 13:18:02 GMT) Full text and rfc822 format available.

Message #26 received at 61956 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Tropin <andrew <at> trop.in>
To: Sergey Trofimov <sarg <at> sarg.org.ru>, 61956 <at> debbugs.gnu.org
Cc: Sergey Trofimov <sarg <at> sarg.org.ru>
Subject: Re: [bug#61956] [PATCH v5] services: dns: Extend
 dnsmasq-configuration.
Date: Mon, 13 Mar 2023 17:17:35 +0400
[Message part 1 (text/plain, inline)]
On 2023-03-10 16:00, Sergey Trofimov wrote:

> * gnu/service/dns.scm: (<dnsmasq-configuration>)[servers-file]: Add.
> (<dnsmasq-configuration>)[tftp-secure?]: Fix typo in parameter name.
> * doc/guix.texi: Document (<dnsmasq-configuration>)[servers-file].
> ---
>  doc/guix.texi        |  4 ++++
>  gnu/services/dns.scm | 11 ++++++++---
>  2 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 6671ba9305..debff95466 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -31502,6 +31502,10 @@ in @var{servers}.
>  @item @code{servers} (default: @code{'()})
>  Specify IP address of upstream servers directly.
>  
> +@item @code{servers-file} (default: @code{#f})
> +Specify file containing upstream servers. This file is re-read when dnsmasq receives SIGHUP.
> +Could be either a string or a file-like object.
> +
>  @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
> diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
> index 32fb8c0664..aaa2b6e47f 100644
> --- a/gnu/services/dns.scm
> +++ b/gnu/services/dns.scm
> @@ -754,6 +754,8 @@ (define-record-type* <dnsmasq-configuration>
>                      (default #f))       ;boolean
>    (servers          dnsmasq-configuration-servers
>                      (default '()))      ;list of string
> +  (servers-file     dnsmasq-configuration-servers-file
> +                    (default #f))       ;string|file-like
>    (addresses        dnsmasq-configuration-addresses
>                      (default '()))      ;list of string
>    (cache-size       dnsmasq-configuration-cache-size
> @@ -792,7 +794,7 @@ (define (dnsmasq-shepherd-service config)
>       port local-service? listen-addresses
>       resolv-file no-resolv?
>       forward-private-reverse-lookup? query-servers-in-order?
> -     servers addresses
> +     servers addresses servers-file
>       cache-size negative-cache?
>       cpe-id
>       tftp-enable? tftp-no-fail?
> @@ -805,7 +807,7 @@ (define (dnsmasq-shepherd-service config)
>       (requirement '(networking))
>       (documentation "Run the dnsmasq DNS server.")
>       (start #~(make-forkexec-constructor
> -               '(#$(file-append package "/sbin/dnsmasq")
> +               (list #$(file-append package "/sbin/dnsmasq")
>                   "--keep-in-foreground"
>                   "--pid-file=/run/dnsmasq.pid"
>                   #$@(if no-hosts?
> @@ -827,6 +829,9 @@ (define (dnsmasq-shepherd-service config)
>                   #$@(if query-servers-in-order?
>                          '("--strict-order")
>                          '())
> +                 #$@(if servers-file
> +                       (list #~(string-append "--servers-file=" #$servers-file))
> +                       '())
>                   #$@(map (cut format #f "--server=~a" <>)
>                           servers)
>                   #$@(map (cut format #f "--address=~a" <>)
> @@ -848,7 +853,7 @@ (define (dnsmasq-shepherd-service config)
>                          '("--tftp-single-port")
>                          '())
>                   #$@(if tftp-secure?
> -                        '("--tftp-secure?")
> +                        '("--tftp-secure")
>                          '())
>                   #$@(if tftp-max
>                          (list (format #f "--tftp-max=~a" tftp-max))


Hi Sergey!

Thank you for the patch, applied, realigned make-forkexec-constructor
arguments, pushed as d1edb26388ca4dab4b435a686cd059d97c113c3e.

-- 
Best regards,
Andrew Tropin
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 1 year and 45 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.