mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 23:13:19 +00:00
nixos/network-interfaces: fix implicit dependency on underlying device
the bug causes a hard dependency on an underlying device which might not be
valid for all interfaces, also broke the example for networking.sits. this is
due to calling hasAttr first and checking for null afterwards, the bug was
made more apparent in commit 76a3c30
This commit is contained in:
parent
63143ac2c9
commit
8314af158f
@ -70,7 +70,8 @@ let
|
||||
deviceDependency = dev:
|
||||
# Use systemd service if we manage device creation, else
|
||||
# trust udev when not in a container
|
||||
if (hasAttr dev (filterAttrs (k: v: v.virtual) cfg.interfaces)) ||
|
||||
if (dev == null || dev == "lo") then []
|
||||
else if (hasAttr dev (filterAttrs (k: v: v.virtual) cfg.interfaces)) ||
|
||||
(hasAttr dev cfg.bridges) ||
|
||||
(hasAttr dev cfg.bonds) ||
|
||||
(hasAttr dev cfg.macvlans) ||
|
||||
@ -78,7 +79,7 @@ let
|
||||
(hasAttr dev cfg.vlans) ||
|
||||
(hasAttr dev cfg.vswitches)
|
||||
then [ "${dev}-netdev.service" ]
|
||||
else optional (dev != null && dev != "lo" && !config.boot.isContainer) (subsystemDevice dev);
|
||||
else optional (!config.boot.isContainer) (subsystemDevice dev);
|
||||
|
||||
hasDefaultGatewaySet = (cfg.defaultGateway != null && cfg.defaultGateway.address != "")
|
||||
|| (cfg.enableIPv6 && cfg.defaultGateway6 != null && cfg.defaultGateway6.address != "");
|
||||
|
Loading…
Reference in New Issue
Block a user