Subject: [bug#38122] [PATCH 010/197] services: ntp: Ensure no double quotes are output to config file.

From: Hartmut Goebel <[email-masked]>
Date: Fri, 8 Nov 2019 11:33:38 +0100

From: Maxim Cournoyer <[email-masked]>

* gnu/services/networking.scm (ntp-server->string): Use the textual
representation of the values as printed by 'display' rather than 'write', to
avoid inserting double quotes in the generated config.
* tests/networking.scm (%ntp-server-sample): Add a comment and make one of the
options a string, to exercise the fix.
("ntp-server->string"): Move the expected value to the first argument.
("ntp configuration servers deprecated form"): Likewise.
("openntpd generated config string ends with a newline"): Likewise.
---
 gnu/services/networking.scm |  2 +-
 tests/networking.scm        | 19 ++++++++++---------
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 93d9b6a15e..841fbd741e 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -345,7 +345,7 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."
                 (res '()))
        (if (list? x)
            (fold loop res x)
-           (cons (format #f "~s" x) res)))))
+           (cons (format #f "~a" x) res)))))
 
   (match ntp-server
     (($ <ntp-server> type address options)
diff --git a/tests/networking.scm b/tests/networking.scm
index 439cca5ffc..c494a48067 100644
--- a/tests/networking.scm
+++ b/tests/networking.scm
@@ -36,22 +36,23 @@
   (ntp-server
    (type 'server)
    (address "some.ntp.server.org")
-   (options `(iburst (version 3) (maxpoll 16) prefer))))
+   ;; Using either strings or symbols for option names is accepted.
+   (options `("iburst" (version 3) (maxpoll 16) prefer))))
 
 (test-equal "ntp-server->string"
-  (ntp-server->string %ntp-server-sample)
-  "server some.ntp.server.org iburst version 3 maxpoll 16 prefer")
+  "server some.ntp.server.org iburst version 3 maxpoll 16 prefer"
+  (ntp-server->string %ntp-server-sample))
 
 (test-equal "ntp configuration servers deprecated form"
+  (ntp-configuration-servers
+   (ntp-configuration
+    (servers (list "example.pool.ntp.org"))))
   (ntp-configuration-servers
    (ntp-configuration
     (servers (list (ntp-server
                     (type 'server)
                     (address "example.pool.ntp.org")
-                    (options '()))))))
-  (ntp-configuration-servers
-   (ntp-configuration
-    (servers (list "example.pool.ntp.org")))))
+                    (options '())))))))
 
 
 ;;;
@@ -106,8 +107,8 @@ the sanity check:\n~a~%" config)
           #t))))
 
 (test-equal "openntpd generated config string ends with a newline"
+  "\n"
   (let ((config (openntpd-configuration->string %openntpd-conf-sample)))
-    (string-take-right config 1))
-  "\n")
+    (string-take-right config 1)))
 
 (test-end "networking")
-- 
2.21.0