about summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorAlexander Ried <ried@mytum.de>2016-09-13 07:55:17 +0200
committerFranz Pletz <fpletz@fnordicwalking.de>2016-09-13 07:55:17 +0200
commit06b2897c4049f62da3c5fb08a5ae788bf051cbc7 (patch)
tree7ba5a5b183cbc8ba22d7bfc11723be4736fd20a0 /nixos/modules
parentd320fbbd055fccf14ed2882baff2842b8e87a213 (diff)
downloadnixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.tar
nixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.tar.gz
nixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.tar.bz2
nixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.tar.lz
nixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.tar.xz
nixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.tar.zst
nixlib-06b2897c4049f62da3c5fb08a5ae788bf051cbc7.zip
networking.dhcpcd: Don't add to system closure when using networkd (#18436)
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix12
-rw-r--r--nixos/modules/tasks/network-interfaces-systemd.nix2
2 files changed, 12 insertions, 2 deletions
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 49d74dfdf0f0..4b0e90886510 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -10,7 +10,8 @@ let
 
   interfaces = attrValues config.networking.interfaces;
 
-  enableDHCP = config.networking.useDHCP || any (i: i.useDHCP == true) interfaces;
+  enableDHCP = config.networking.dhcpcd.enable &&
+        (config.networking.useDHCP || any (i: i.useDHCP == true) interfaces);
 
   # Don't start dhcpcd on explicitly configured interfaces or on
   # interfaces that are part of a bridge, bond or sit device.
@@ -85,6 +86,15 @@ in
 
   options = {
 
+    networking.dhcpcd.enable = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether to enable dhcpcd for device configuration. This is mainly to
+        explicitly disable dhcpcd (for example when using networkd).
+      '';
+    };
+
     networking.dhcpcd.persistent = mkOption {
       type = types.bool;
       default = false;
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 301ee43fd0e5..974041d7e1a5 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -43,7 +43,7 @@ in
       message = "networking.bridges.${n}.rstp is not supported by networkd.";
     });
 
-    systemd.services.dhcpcd.enable = mkDefault false;
+    networking.dhcpcd.enable = mkDefault false;
 
     systemd.services.network-local-commands = {
       after = [ "systemd-networkd.service" ];