summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-09-27 00:41:33 +0200
committerLudovic Courtès <ludo@gnu.org>2013-09-27 00:46:18 +0200
commit87eb734d38dff72ccdffd6c5f711d276aa3f9334 (patch)
treeae4868df0da9b41914d9de385dea146e160ab3d5 /gnu/system
parent17886b302246476134a222fe970c90aef9aabc72 (diff)
downloadguix-87eb734d38dff72ccdffd6c5f711d276aa3f9334.tar.gz
gnu: dmd: Make the 'networking' service slightly more robust.
* gnu/system/dmd.scm (static-networking-service)[start]: Sleep before
  running 'route', to leave time for the interface to come up.
  [stop]: Run "route del -net default".
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/dmd.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm
index 8cc3f61c74..4d3b4b31f0 100644
--- a/gnu/system/dmd.scm
+++ b/gnu/system/dmd.scm
@@ -178,10 +178,14 @@ true, it must be a string specifying the default network gateway."
      (start `(lambda _
                (and (zero? (system* ,ifconfig ,interface ,ip "up"))
                     ,(if gateway
-                         `(zero? (system* ,route "add" "-net" "default"
-                                          "gw" ,gateway))
+                         `(begin
+                            (sleep 3)             ; XXX
+                            (zero? (system* ,route "add" "-net" "default"
+                                            "gw" ,gateway)))
                          #t))))
-     (stop  `(make-forkexec-constructor ,ifconfig ,interface "down"))
+     (stop  `(lambda _
+               (system* ,ifconfig ,interface "down")
+               (system* ,route "del" "-net" "default")))
      (respawn? #f)
      (inputs `(("inetutils" ,inetutils)
                ,@(if gateway