22 lines
833 B
Nix
22 lines
833 B
Nix
# NetworkManager hook to make MozillaVPN work nicely with other overlay networks like netmaker/tailscale/etc
|
|
{ pkgs
|
|
, vpn_interface
|
|
, vpn_network
|
|
, ...
|
|
}: (pkgs.writeText "${vpn_interface}-route" ''
|
|
#!${pkgs.fish}/bin/fish
|
|
set MOZ_INTERFACE "moz0"
|
|
set VPN_INTERFACE "${vpn_interface}"
|
|
set VPN_NETWORK "${vpn_network}"
|
|
|
|
sleep 1 # give mozillavpn time to create the rules we want to override
|
|
logger "NetworkManager dispatcher event: $argv[1], $argv[2]"
|
|
|
|
# When MOZ interface comes up, check and add the Tailscale route
|
|
if test "$argv[1]" = "$MOZ_INTERFACE" -a "$argv[2]" = "up"
|
|
# Re-creating forces high priority in case the route already exists
|
|
ip route del $VPN_NETWORK dev $VPN_INTERFACE
|
|
ip route add $VPN_NETWORK dev $VPN_INTERFACE
|
|
logger "Added route for $VPN_NETWORK via $VPN_INTERFACE"
|
|
end
|
|
'')
|