1234567891011121314151617181920212223242526272829 |
- #!/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
- }
- 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
- set_nat "${new_gateway_interface}"
- ynh_app_setting_set --app=$app --key=gateway_interface --value="${new_gateway_interface}"
|