about summary refs log tree commit diff
path: root/nixos/modules/virtualisation
diff options
context:
space:
mode:
authorJoachim F <joachifm@users.noreply.github.com>2017-05-21 17:22:33 +0100
committerGitHub <noreply@github.com>2017-05-21 17:22:33 +0100
commit8f89e43427572b019c1e647a0715a011f4711be0 (patch)
treefb252ac31b5abab2296e46953f5a3974b21574cb /nixos/modules/virtualisation
parentbfd3227686d80701250aab9eff4301b84f630e8d (diff)
parent1c7629ce635cf98bfd4ba83137baf36259421e3a (diff)
downloadnixlib-8f89e43427572b019c1e647a0715a011f4711be0.tar
nixlib-8f89e43427572b019c1e647a0715a011f4711be0.tar.gz
nixlib-8f89e43427572b019c1e647a0715a011f4711be0.tar.bz2
nixlib-8f89e43427572b019c1e647a0715a011f4711be0.tar.lz
nixlib-8f89e43427572b019c1e647a0715a011f4711be0.tar.xz
nixlib-8f89e43427572b019c1e647a0715a011f4711be0.tar.zst
nixlib-8f89e43427572b019c1e647a0715a011f4711be0.zip
Merge pull request #25700 from michalpalka/xen-bridge-stop-fix
xen service: Fix removing netfilter rules while stopping xen-bridge
Diffstat (limited to 'nixos/modules/virtualisation')
-rw-r--r--nixos/modules/virtualisation/xen-dom0.nix7
1 files changed, 5 insertions, 2 deletions
diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix
index 7df2df6ef8a8..f6f2d5dad01c 100644
--- a/nixos/modules/virtualisation/xen-dom0.nix
+++ b/nixos/modules/virtualisation/xen-dom0.nix
@@ -406,6 +406,9 @@ in
       '';
       serviceConfig.ExecStart = "${pkgs.dnsmasq}/bin/dnsmasq --conf-file=/var/run/xen/dnsmasq.conf";
       postStop = ''
+        IFS='-' read -a data <<< `${pkgs.sipcalc}/bin/sipcalc ${cfg.bridge.address}/${toString cfg.bridge.prefixLength} | grep Network\ address`
+        export XEN_BRIDGE_NETWORK_ADDRESS="${"\${data[1]//[[:blank:]]/}"}"
+
         ${pkgs.inetutils}/bin/ifconfig ${cfg.bridge.name} down
         ${pkgs.bridge-utils}/bin/brctl delbr ${cfg.bridge.name}
 
@@ -413,8 +416,8 @@ in
         ${pkgs.iptables}/bin/iptables -w -D INPUT  -i ${cfg.bridge.name} -p udp -d ${cfg.bridge.address} --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
         ${pkgs.iptables}/bin/iptables -w -D INPUT  -i ${cfg.bridge.name} -p tcp -d ${cfg.bridge.address} --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
         # DHCP
-        ${pkgs.iptables}/bin/iptables -w -D INPUT  -i ${cfg.bridge.name} -p udp --sport 68 --dport 67 -j ACCEPT
-        ${pkgs.iptables}/bin/iptables -w -D INPUT  -i ${cfg.bridge.name} -p tcp --sport 68 --dport 67 -j ACCEPT
+        ${pkgs.iptables}/bin/iptables -w -D INPUT  -i ${cfg.bridge.name} -p udp -s $XEN_BRIDGE_NETWORK_ADDRESS/${toString cfg.bridge.prefixLength} --sport 68 --dport 67 -j ACCEPT
+        ${pkgs.iptables}/bin/iptables -w -D INPUT  -i ${cfg.bridge.name} -p tcp -s $XEN_BRIDGE_NETWORK_ADDRESS/${toString cfg.bridge.prefixLength} --sport 68 --dport 67 -j ACCEPT
       '';
     };