38 lines
858 B
Plaintext
38 lines
858 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
if [ "$ACTION" = ifup ]; then
|
||
|
. /etc/functions.sh
|
||
|
|
||
|
include /lib/network
|
||
|
scan_interfaces
|
||
|
|
||
|
update_tunnel() {
|
||
|
local cfg="$1"
|
||
|
|
||
|
local proto
|
||
|
config_get proto "$cfg" proto
|
||
|
[ "$proto" = tayga ] || return 0
|
||
|
|
||
|
local wandev4
|
||
|
config_get wandev4 "$cfg" wan4_device "$(find_tayga_wanif4)"
|
||
|
|
||
|
local wandev6
|
||
|
config_get wandev6 "$cfg" wan6_device "$(find_tayga_wanif6)"
|
||
|
|
||
|
[ "$wandev4" = "$DEVICE" ] || [ "$wandev6" = "$DEVICE" ] || return 0
|
||
|
|
||
|
local wanip4=$(find_tayga_wanip4 "$wandev4")
|
||
|
local wanip6=$(find_tayga_wanip6 "$wandev6")
|
||
|
|
||
|
[ -n "$wanip4" ] && [ -n "$wanip6" ] && {
|
||
|
uci_set_state network "$cfg" ipv4addr "$wanip4"
|
||
|
uci_set_state network "$cfg" ipv6addr "$wanip6"
|
||
|
|
||
|
logger -t tayga-update "Re-establishing tayga NAT64 due to change on $INTERFACE ($DEVICE)"
|
||
|
ifup "$cfg" &
|
||
|
}
|
||
|
}
|
||
|
|
||
|
config_foreach update_tunnel interface
|
||
|
fi
|