|
@ -1,20 +1,27 @@ |
|
|
#!/bin/sh |
|
|
#!/bin/sh |
|
|
|
|
|
. /lib/functions.sh |
|
|
. /usr/share/libubox/jshn.sh |
|
|
. /usr/share/libubox/jshn.sh |
|
|
[ "$ACTION" != ifup ] && exit |
|
|
[ "$ACTION" != ifup ] && exit |
|
|
|
|
|
|
|
|
networks=$(uci show network | sed "s/network.\([^.]*\).proto='openfortivpn'/\1/;t;d") |
|
|
|
|
|
for i in $networks; do |
|
|
|
|
|
iface=$(uci get "network.${i}.iface_name") |
|
|
|
|
|
iface_success=$? |
|
|
|
|
|
[ $? -eq 0 ] && [ $INTERFACE == "$iface" ] && { |
|
|
|
|
|
logger -t "openfortivpnhotplug" "$ACTION on $INTERFACE to bring up $i" |
|
|
|
|
|
load_on_boot=$(uci get network.${i}.auto 2>/dev/null) |
|
|
|
|
|
[ -n "$load_on_boot" ] && [ "$load_on_boot" -eq 0 ] && continue |
|
|
|
|
|
json_load "$(ifstatus $i)" |
|
|
|
|
|
|
|
|
handle_network() |
|
|
|
|
|
{ |
|
|
|
|
|
config_get iface $1 iface_name |
|
|
|
|
|
[ $INTERFACE != "$iface" ] && return |
|
|
|
|
|
[ $(config_get $1 proto) != "openfortivpn" ] && return |
|
|
|
|
|
|
|
|
|
|
|
config_get_bool load_on_boot $1 auto |
|
|
|
|
|
[ -n "$load_on_boot" ] && [ "$load_on_boot" -eq 0 ] && return |
|
|
|
|
|
status="$(ifstatus $1)" || continue |
|
|
|
|
|
json_load "$status" |
|
|
json_get_var autostart autostart |
|
|
json_get_var autostart autostart |
|
|
|
|
|
logger -t "openfortivpnhotplug" "$ACTION on $INTERFACE to bring up $1. Autostart is $autostart" |
|
|
[ "$autostart" -eq 0 ] && { |
|
|
[ "$autostart" -eq 0 ] && { |
|
|
logger -t "openfortivpnhotplug" "auto-start was false. bringing $i up" |
|
|
|
|
|
ubus call network.interface up "{ \"interface\" : \"$i\" }" |
|
|
|
|
|
|
|
|
logger -t "openfortivpnhotplug" "auto-start was false. bringing $1 up" |
|
|
|
|
|
ubus call network.interface up "{ \"interface\" : \"$1\" }" |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
done |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
config_load network |
|
|
|
|
|
config_foreach handle_network interface |
|
|
|
|
|
exit 0 |