summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2017-03-25 13:54:57 +0100
committerRobin Gloster <mail@glob.in>2017-03-25 14:31:06 +0100
commitc2ad3e4f70d6fd604e9dc099aacaba9ea53554fa (patch)
treea540960c791066520b5d80a4771bb9ce3542cbdb /nixos
parent0e494727a7510b92116fef6ff98aefd3cbbef343 (diff)
networkd: fix setting both defaultGateway{,6}
(cherry picked from commit 6b8ad8b581576d45996a17822e80e6be281dffd9)
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/tasks/network-interfaces-systemd.nix19
1 files changed, 10 insertions, 9 deletions
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 8b85ff0057f97..a365a01bfb1ed 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;