summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/networking.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index f03161fe58..7abcd9ed15 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -55,7 +55,8 @@ gateway."
                  ;; Return #t if successfully started.
                  (and (zero? (system* (string-append #$inetutils
                                                      "/bin/ifconfig")
-                                      #$interface #$ip "up"))
+                                      "-i" #$interface "-A" #$ip
+                                      "-i" #$interface "--up"))
                       #$(if gateway
                             #~(zero? (system* (string-append #$net-tools
                                                              "/sbin/route")
@@ -77,8 +78,11 @@ gateway."
                 ;; Return #f is successfully stopped.
                 (not (and (system* (string-append #$inetutils "/bin/ifconfig")
                                    #$interface "down")
-                          (system* (string-append #$net-tools "/sbin/route")
-                                   "del" "-net" "default")))))
+                          #$(if gateway
+                                #~(system* (string-append #$net-tools
+                                                          "/sbin/route")
+                                           "del" "-net" "default")
+                                #t)))))
       (respawn? #f)))))
 
 ;;; networking.scm ends here