#!/bin/sh [ "$ACTION" = "ifup" ] || [ "$ACTION" = "ifupdate" ] || exit 0 [ -n "$DEVICE" ] || exit 0 . /usr/share/passwall2/utils.sh [ -f "${LOCK_PATH}/${CONFIG}_ready.lock" ] || exit 0 [ "$(get_cache_var "ENABLED_DEFAULT_ACL")" = "1" ] || [ "$(get_cache_var "ENABLED_ACLS")" = "1" ] || exit 0 default_device=$(ip route show default 2>/dev/null | awk '{ for (i = 1; i < NF; i++) if ($i == "dev") { print $(i + 1); break } exit }') default6_device=$(ip -6 route show default 2>/dev/null | awk '{ for (i = 1; i < NF; i++) if ($i == "dev") { print $(i + 1); break } exit }') [ "$default_device" = "$DEVICE" ] || [ "$default6_device" = "$DEVICE" ] || exit 0 if [ "$ACTION" = "ifupdate" ]; then USE_TABLES=$(get_cache_var "USE_TABLES") [ -n "$USE_TABLES" ] && { "${APP_PATH}/${USE_TABLES}.sh" update_wan_sets >/dev/null 2>&1 & } exit 0 fi mkdir -p "$LOCK_PATH" || { logger -p err -t network -s "${CONFIG}: cannot create lock directory $LOCK_PATH" exit 1 } ( command exec 9>"${LOCK_PATH}/${CONFIG}_ifup.lock" || { logger -p err -t network -s "${CONFIG}: cannot open ifup lock" exit 1 } flock -xn 9 || exit 0 # Keep this lock file: removing it would allow locks on different inodes. # The worker holds the lock until restart returns; children must not inherit it. logger -p notice -t network -s "${CONFIG}: restart when $INTERFACE ifup" 9>&- "/etc/init.d/${CONFIG}" restart 9>&- ) /dev/null 2>&1 & exit 0