diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix index 8b85ff0057f9..a365a01bfb1e 100644 --- a/nixos/modules/tasks/network-interfaces-systemd.nix +++ b/nixos/modules/tasks/network-interfaces-systemd.nix @@ -59,15 +59,16 @@ in systemd.network = let domains = cfg.search ++ (optional (cfg.domain != null) cfg.domain); - genericNetwork = override: { - DHCP = override (dhcpStr cfg.useDHCP); - } // optionalAttrs (cfg.defaultGateway != null) { - gateway = override [ cfg.defaultGateway.address ]; - } // optionalAttrs (cfg.defaultGateway6 != null) { - gateway = override [ cfg.defaultGateway6.address ]; - } // optionalAttrs (domains != [ ]) { - domains = override domains; - }; + genericNetwork = override: + let gateway = optional (cfg.defaultGateway != null) cfg.defaultGateway.address + ++ optional (cfg.defaultGateway6 != null) cfg.defaultGateway6.address; + in { + DHCP = override (dhcpStr cfg.useDHCP); + } // optionalAttrs (gateway != [ ]) { + gateway = override gateway; + } // optionalAttrs (domains != [ ]) { + domains = override domains; + }; in mkMerge [ { enable = true; networks."99-main" = genericNetwork mkDefault;