~ruther/guix-local

f02f65efb4328a3018b6302af9e12f67e4a5e342 — Ludovic Courtès 11 years ago 6a3f4c7
services: dhcp-client: Start 'dhclient' in "no wait" mode.

* gnu/services/networking.scm (dhcp-client-service): Pass '-nw' to
  'dhclient'.
1 files changed, 10 insertions(+), 3 deletions(-)

M gnu/services/networking.scm
M gnu/services/networking.scm => gnu/services/networking.scm +10 -3
@@ 107,10 107,16 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."

  (with-monad %store-monad
    (return (service
             (documentation
              "Set up networking via DHCP.")
             (documentation "Set up networking via DHCP.")
             (requirement '(user-processes udev))

             ;; XXX: Running with '-nw' ("no wait") avoids blocking for a
             ;; minute when networking is unavailable, but also means that the
             ;; interface is not up yet when 'start' completes.  To wait for
             ;; the interface to be ready, one should instead monitor udev
             ;; events.
             (provision '(networking))

             (start #~(lambda _
                        ;; When invoked without any arguments, 'dhclient'
                        ;; discovers all non-loopback interfaces *that are


@@ 121,7 127,8 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."
                               (ifaces (filter valid?
                                               (all-network-interfaces)))
                               (pid    (fork+exec-command
                                        (cons* #$dhclient "-pf" #$pid-file
                                        (cons* #$dhclient "-nw"
                                               "-pf" #$pid-file
                                               ifaces))))
                          (and (zero? (cdr (waitpid pid)))
                               (call-with-input-file #$pid-file read)))))