summary refs log tree commit diff
path: root/nixos/modules/services/networking
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-29 17:34:43 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-29 17:39:32 +0100
commit1d104c792beff1eff7228d636ba149ed27325aa1 (patch)
treee8b7f97b869145bc6331426b4a6af3e0e26a17c5 /nixos/modules/services/networking
parent0695b68c8c3411fdb1ab1bad3b94b19d7ed33f25 (diff)
downloadnixlib-1d104c792beff1eff7228d636ba149ed27325aa1.tar
nixlib-1d104c792beff1eff7228d636ba149ed27325aa1.tar.gz
nixlib-1d104c792beff1eff7228d636ba149ed27325aa1.tar.bz2
nixlib-1d104c792beff1eff7228d636ba149ed27325aa1.tar.lz
nixlib-1d104c792beff1eff7228d636ba149ed27325aa1.tar.xz
nixlib-1d104c792beff1eff7228d636ba149ed27325aa1.tar.zst
nixlib-1d104c792beff1eff7228d636ba149ed27325aa1.zip
Remove the dhclient module
It's no longer used by NixOS (replaced by dhcpcd).
Diffstat (limited to 'nixos/modules/services/networking')
-rw-r--r--nixos/modules/services/networking/dhclient.nix111
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix2
-rw-r--r--nixos/modules/services/networking/ifplugd.nix14
3 files changed, 8 insertions, 119 deletions
diff --git a/nixos/modules/services/networking/dhclient.nix b/nixos/modules/services/networking/dhclient.nix
deleted file mode 100644
index 1e3434438997..000000000000
--- a/nixos/modules/services/networking/dhclient.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-{ config, pkgs, ... }:
-
-with pkgs.lib;
-
-let
-
-  inherit (pkgs) nettools dhcp lib;
-
-  # Don't start dhclient on explicitly configured interfaces or on
-  # interfaces that are part of a bridge.
-  ignoredInterfaces =
-    map (i: i.name) (lib.filter (i: i ? ipAddress && i.ipAddress != "" ) config.networking.interfaces)
-    ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges));
-
-  stateDir = "/var/lib/dhcp"; # Don't use /var/state/dhcp; not FHS-compliant.
-
-  dhclientExitHooks = pkgs.writeText "dhclient-exit-hooks"
-    ''
-      #echo "$reason" >> /tmp/dhcp-exit
-      #echo "$exit_status" >> /tmp/dhcp-exit
-
-      if test "$reason" = BOUND -o "$reason" = REBOOT; then
-          # Restart ntpd.  (The "ip-up" event below will trigger the
-          # restart.)  We need to restart it to make sure that it will
-          # actually do something: if ntpd cannot resolve the server
-          # hostnames in its config file, then it will never do
-          # anything ever again ("couldn't resolve ..., giving up on
-          # it"), so we silently lose time synchronisation.
-          ${config.system.build.upstart}/sbin/initctl stop ntpd
-
-          ${config.system.build.upstart}/sbin/initctl emit -n ip-up
-      fi
-
-      if test "$reason" = EXPIRE -o "$reason" = RELEASE; then
-          ${config.system.build.upstart}/sbin/initctl emit -n ip-down
-      fi
-    '';
-
-in
-
-{
-
-  ###### implementation
-
-  config = mkIf config.networking.useDHCP {
-
-    # dhclient barfs if /proc/net/if_inet6 doesn't exist.
-    boot.kernelModules = [ "ipv6" ];
-
-    jobs.dhclient =
-      { startOn = "started network-interfaces";
-        stopOn = "stopping network-interfaces";
-
-        path = [ dhcp ];
-
-        script =
-          ''
-            # Determine the interface on which to start dhclient.
-            interfaces=
-
-            for i in $(cd /sys/class/net && ls -d *); do
-                # Only run dhclient on interfaces of type ARPHRD_ETHER
-                # (1), i.e. Ethernet.  Ignore peth* devices; on Xen,
-                # they're renamed physical Ethernet cards used for
-                # bridging.  Likewise for vif* and tap* (Xen) and
-                # virbr* and vnet* (libvirt).
-                if [ "$(cat /sys/class/net/$i/type)" = 1 ]; then
-                    if ! for j in ${toString ignoredInterfaces}; do echo $j; done | grep -F -x -q "$i" &&
-                       ! echo "$i" | grep -x -q "peth.*\|vif.*\|tap.*\|virbr.*\|vnet.*";
-		    then
-                        echo "Running dhclient on $i"
-                        interfaces="$interfaces $i"
-                    fi
-                fi
-            done
-
-            if test -z "$interfaces"; then
-                echo 'No interfaces on which to start dhclient!'
-                exit 1
-            fi
-
-            mkdir -m 755 -p ${stateDir}
-
-            exec dhclient -d $interfaces -e "PATH=$PATH" -lf ${stateDir}/dhclient.leases -sf ${dhcp}/sbin/dhclient-script
-          '';
-      };
-
-    environment.systemPackages = [dhcp];
-
-    environment.etc =
-      [ # Dhclient hooks for emitting ip-up/ip-down events.
-        { source = dhclientExitHooks;
-          target = "dhclient-exit-hooks";
-        }
-      ];
-
-    powerManagement.resumeCommands =
-      ''
-        ${config.system.build.upstart}/sbin/restart dhclient
-      '';
-
-    networking.interfaceMonitor.commands =
-      ''
-        if [ "$status" = up ]; then
-          ${config.system.build.upstart}/sbin/restart dhclient
-        fi
-      '';
-
-  };
-
-}
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 48803511a5ea..07b5606eacaa 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -6,7 +6,7 @@ let
 
   inherit (pkgs) dhcpcd;
 
-  # Don't start dhclient on explicitly configured interfaces or on
+  # Don't start dhcpcd on explicitly configured interfaces or on
   # interfaces that are part of a bridge.
   ignoredInterfaces =
     map (i: i.name) (filter (i: i.ipAddress != null) (attrValues config.networking.interfaces))
diff --git a/nixos/modules/services/networking/ifplugd.nix b/nixos/modules/services/networking/ifplugd.nix
index df50e9807a90..4e939d603542 100644
--- a/nixos/modules/services/networking/ifplugd.nix
+++ b/nixos/modules/services/networking/ifplugd.nix
@@ -9,10 +9,7 @@ let
   cfg = config.networking.interfaceMonitor;
 
   # The ifplugd action script, which is called whenever the link
-  # status changes (i.e., a cable is plugged in or unplugged).  We do
-  # nothing when a cable is unplugged.  When a cable is plugged in, we
-  # restart dhclient, which will hopefully give us a new IP address
-  # if appropriate.
+  # status changes (i.e., a cable is plugged in or unplugged).
   plugScript = pkgs.writeScript "ifplugd.action"
     ''
       #! ${pkgs.stdenv.shell}
@@ -30,17 +27,19 @@ in
   options = {
 
     networking.interfaceMonitor.enable = mkOption {
+      type = types.bool;
       default = false;
       description = ''
         If <literal>true</literal>, monitor Ethernet interfaces for
         cables being plugged in or unplugged.  When this occurs, the
-        <command>dhclient</command> service is restarted to
-        automatically obtain a new IP address.  This is useful for
-        roaming users (laptops).
+        commands specified in
+        <option>networking.interfaceMonitor.commands</option> are
+        executed.
       '';
     };
 
     networking.interfaceMonitor.beep = mkOption {
+      type = types.bool;
       default = false;
       description = ''
         If <literal>true</literal>, beep when an Ethernet cable is
@@ -49,6 +48,7 @@ in
     };
 
     networking.interfaceMonitor.commands = mkOption {
+      type = types.lines;
       default = "";
       description = ''
         Shell commands to be executed when the link status of an