about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2019-09-26 12:16:24 +0200
committerGitHub <noreply@github.com>2019-09-26 12:16:24 +0200
commitf0f3bd8d9637eef48f64ee7ae965914b812aae2c (patch)
tree6245543bd494edfb5ca6b89ffe08788708d9c81f /nixos
parent3702a4b833db1d76fa4e4e9979b6812624ef83aa (diff)
parent8b93e5c8a4b57431b76f2f634cda11ceffc0f107 (diff)
downloadnixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.tar
nixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.tar.gz
nixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.tar.bz2
nixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.tar.lz
nixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.tar.xz
nixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.tar.zst
nixlib-f0f3bd8d9637eef48f64ee7ae965914b812aae2c.zip
Merge pull request #68227 from volth/patch-362
network-interfaces.nix: escape '.' in interface names passed to sysctl
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/tasks/network-interfaces.nix8
1 files changed, 4 insertions, 4 deletions
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 5bf7b0d227f0..7351f8b6b7e1 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -967,9 +967,9 @@ in
       "net.ipv6.conf.default.disable_ipv6" = mkDefault (!cfg.enableIPv6);
       "net.ipv6.conf.all.forwarding" = mkDefault (any (i: i.proxyARP) interfaces);
     } // listToAttrs (flip concatMap (filter (i: i.proxyARP) interfaces)
-        (i: forEach [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${i.name}.proxy_arp" true)))
+        (i: forEach [ "4" "6" ] (v: nameValuePair "net.ipv${v}.conf.${replaceChars ["."] ["/"] i.name}.proxy_arp" true)))
       // listToAttrs (forEach (filter (i: i.preferTempAddress) interfaces)
-        (i: nameValuePair "net.ipv6.conf.${i.name}.use_tempaddr" 2));
+        (i: nameValuePair "net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr" 2));
 
     # Capabilities won't work unless we have at-least a 4.3 Linux
     # kernel because we need the ambient capability
@@ -1092,7 +1092,7 @@ in
         destination = "/etc/udev/rules.d/98-${name}";
         text = ''
           # enable and prefer IPv6 privacy addresses by default
-          ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.%k.use_tempaddr=2"
+          ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.coreutils}/bin/echo 2 > /proc/sys/net/ipv6/conf/%k/use_tempaddr"
         '';
       })
       (pkgs.writeTextFile rec {
@@ -1100,7 +1100,7 @@ in
         destination = "/etc/udev/rules.d/99-${name}";
         text = concatMapStrings (i: ''
           # enable IPv6 privacy addresses but prefer EUI-64 addresses for ${i.name}
-          ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${i.name}.use_tempaddr=1"
+          ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr=1"
         '') (filter (i: !i.preferTempAddress) interfaces);
       })
     ] ++ lib.optional (cfg.wlanInterfaces != {})