1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/hotspot_ynh.git synced 2024-09-03 19:25:53 +02:00
hotspot_ynh/conf/openvpn_90-hotspot
2023-11-19 15:33:13 +01:00

33 lines
1 KiB
Bash

#!/bin/bash
source /usr/share/yunohost/helpers
is_nat_set() {
local gateway_interface=${1}
iptables -w -nvt nat -L POSTROUTING | grep MASQUERADE | grep -q "${gateway_interface}"
}
unset_nat() {
local gateway_interface=${1}
iptables -w -t nat -D POSTROUTING -o "${gateway_interface}" -j MASQUERADE
}
set_nat() {
local gateway_interface=${1}
iptables -w -t nat -A POSTROUTING -o "${gateway_interface}" -j MASQUERADE
}
if systemctl is-active __SERVICE_NAME__; then
old_gateway_interface=$(ynh_app_setting_get --app=__APP__ --key=gateway_interface)
new_gateway_interface=$(ip route get 1.2.3.4 | awk '{ print $5; }')
if [[ -n "$old_gateway_interface" ]] && [[ "$old_gateway_interface" != "$new_gateway_interface" ]] && is_nat_set "$old_gateway_interface"; then
unset_nat "${old_gateway_interface}"
fi
if [[ -n "$new_gateway_interface" ]] && ! is_nat_set $new_gateway_interface; then
set_nat "${new_gateway_interface}"
fi
ynh_app_setting_set --app=__APP__ --key=gateway_interface --value="${new_gateway_interface}"
fi