openvpn_90-hotspot 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/bash
  2. source /usr/share/yunohost/helpers
  3. is_nat_set() {
  4. local gateway_interface=${1}
  5. iptables -w -nvt nat -L POSTROUTING | grep MASQUERADE | grep -q "${gateway_interface}"
  6. }
  7. unset_nat() {
  8. local gateway_interface=${1}
  9. iptables -w -t nat -D POSTROUTING -o "${gateway_interface}" -j MASQUERADE
  10. }
  11. set_nat() {
  12. local gateway_interface=${1}
  13. iptables -w -t nat -A POSTROUTING -o "${gateway_interface}" -j MASQUERADE
  14. }
  15. if systemctl is-active __SERVICE_NAME__; then
  16. old_gateway_interface=$(yunohost app setting --app=__APP__ --key=gateway_interface)
  17. new_gateway_interface=$(ip route get 1.2.3.4 | awk '{ print $5; }')
  18. if [[ -n "$old_gateway_interface" ]] && [[ "$old_gateway_interface" != "$new_gateway_interface" ]] && is_nat_set "$old_gateway_interface"; then
  19. unset_nat "${old_gateway_interface}"
  20. fi
  21. if [[ -n "$new_gateway_interface" ]] && ! is_nat_set $new_gateway_interface; then
  22. set_nat "${new_gateway_interface}"
  23. fi
  24. ynh_app_setting_set --app=__APP__ --key=gateway_interface --value="${new_gateway_interface}"
  25. fi