Compare commits

...

2 commits

2 changed files with 7 additions and 8 deletions
modules/nixos/services/vpn/wireguard

View file

@ -4,6 +4,11 @@ let
cfg = config.local.services.vpn.wireguard; cfg = config.local.services.vpn.wireguard;
addrsViaDefaultInterface = import ./defaultInterfaceAddrs.secret.nix; addrsViaDefaultInterface = import ./defaultInterfaceAddrs.secret.nix;
ipRouteParams = ''
addr=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $3; exit}'`
interface=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $5; exit}'`
'';
in in
{ {
options.local.services.vpn.wireguard = with lib; { options.local.services.vpn.wireguard = with lib; {
@ -45,18 +50,12 @@ in
# Path to the private key file. # Path to the private key file.
privateKeyFile = cfg.privateKeyFile; privateKeyFile = cfg.privateKeyFile;
postUp = '' postUp = ipRouteParams + lib.concatLines (map
addr=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $3; exit}'`
interface=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $5; exit}'`
'' + lib.concatLines (map
(addr: "${pkgs.iproute2}/bin/ip route add ${addr} via $addr dev $interface || true") (addr: "${pkgs.iproute2}/bin/ip route add ${addr} via $addr dev $interface || true")
addrsViaDefaultInterface addrsViaDefaultInterface
); );
preDown = '' preDown = ipRouteParams + lib.concatLines (map
addr=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $3; exit}'`
interface=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $5; exit}'`
'' + lib.concatLines (map
(addr: "${pkgs.iproute2}/bin/ip route del ${addr} via $addr dev $interface || true") (addr: "${pkgs.iproute2}/bin/ip route del ${addr} via $addr dev $interface || true")
addrsViaDefaultInterface addrsViaDefaultInterface
); );