summary refs log tree commit diff
path: root/gnu/system/dmd.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system/dmd.scm')
-rw-r--r--gnu/system/dmd.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm
index f4b9371ada..8a79f0a50f 100644
--- a/gnu/system/dmd.scm
+++ b/gnu/system/dmd.scm
@@ -163,6 +163,7 @@
 (define* (static-networking-service interface ip
                                     #:key
                                     gateway
+                                    (name-servers '())
                                     (inetutils inetutils)
                                     (net-tools net-tools))
   "Return a service that starts INTERFACE with address IP.  If GATEWAY is
@@ -185,6 +186,17 @@ true, it must be a string specifying the default network gateway."
                      ,(if gateway
                           `(zero? (system* ,route "add" "-net" "default"
                                            "gw" ,gateway))
+                          #t)
+                     ,(if (pair? name-servers)
+                          `(call-with-output-file "/etc/resolv.conf"
+                             (lambda (port)
+                               (display
+                                "# Generated by 'static-networking-service'.\n"
+                                port)
+                               (for-each (lambda (server)
+                                           (format port "nameserver ~a~%"
+                                                   server))
+                                         ',name-servers)))
                           #t))))
       (stop  `(lambda _
                 ;; Return #f is successfully stopped.