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:30:05 +0100
commit6b8ad8b581576d45996a17822e80e6be281dffd9 (patch)
treea9b7697f9093710aa67548a778339b87e8918877 /nixos
parent54c15923c26079cfff49f9dcbdfe4975ebeee1fb (diff)
downloadnixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.tar
nixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.tar.gz
nixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.tar.bz2
nixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.tar.lz
nixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.tar.xz
nixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.tar.zst
nixlib-6b8ad8b581576d45996a17822e80e6be281dffd9.zip
networkd: fix setting both defaultGateway{,6}
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 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;