summary refs log tree commit diff
path: root/modules/services/networking/dhclient.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-07-24 00:31:22 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-07-24 00:31:22 +0000
commitc4780a8953bbbb61e0405889f217779a9432e9ca (patch)
treeda51ddcdf64b18b1ddbe3fcf48bd1d1e572c2c87 /modules/services/networking/dhclient.nix
parent32b311a0f52eeb9cfd5370799505ef96edaacf99 (diff)
downloadnixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.tar
nixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.tar.gz
nixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.tar.bz2
nixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.tar.lz
nixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.tar.xz
nixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.tar.zst
nixlib-c4780a8953bbbb61e0405889f217779a9432e9ca.zip
* dhcp 4.1 requires IPv6 support.
svn path=/nixos/branches/modular-nixos/; revision=16450
Diffstat (limited to 'modules/services/networking/dhclient.nix')
-rw-r--r--modules/services/networking/dhclient.nix29
1 files changed, 14 insertions, 15 deletions
diff --git a/modules/services/networking/dhclient.nix b/modules/services/networking/dhclient.nix
index c87e788b6d5c..f1b523adf888 100644
--- a/modules/services/networking/dhclient.nix
+++ b/modules/services/networking/dhclient.nix
@@ -60,20 +60,20 @@ in
   
   config = mkIf config.networking.useDHCP {
 
-    jobs = pkgs.lib.singleton {
-      name = "dhclient";
+    jobs = pkgs.lib.singleton
+      { name = "dhclient";
 
-      job = ''
-        description "DHCP client"
+        startOn = "network-interfaces/started";
+        stopOn = "network-interfaces/stop";
 
-        start on network-interfaces/started
-        stop on network-interfaces/stop
-
-        env PATH_DHCLIENT_SCRIPT=${dhcp}/sbin/dhclient-script
-
-        script
-            export PATH=${nettools}/sbin:$PATH
+        preStart =
+          ''
+            # dhclient barfs if /proc/net/if_inet6 doesn't exist.
+            ${config.system.sbin.modprobe}/sbin/modprobe ipv6 || true
+          '';
 
+        script =
+          ''
             # Determine the interface on which to start dhclient.
             interfaces=
 
@@ -91,10 +91,9 @@ in
 
             mkdir -m 755 -p ${stateDir}
 
-            exec ${dhcp}/sbin/dhclient -d $interfaces -e "PATH=$PATH" -lf ${stateDir}/dhclient.leases
-        end script
-      '';
-    };
+            exec ${dhcp}/sbin/dhclient -d $interfaces -e "PATH=$PATH" -lf ${stateDir}/dhclient.leases -sf ${dhcp}/sbin/dhclient-script
+          '';
+      };
 
     environment.systemPackages = [dhcp];