mirror of
https://github.com/unraid/webgui.git
synced 2026-01-03 16:14:54 -06:00
@@ -58,14 +58,13 @@ while :; do
|
||||
for i in ${!TASK[@]}; do
|
||||
ADDR=(${TASK[$i]})
|
||||
PORT=${ADDR[0]}
|
||||
ADDR=${ADDR[1]%/*}
|
||||
[[ $LAST != ${PORT%.*} ]] && STATE=$(state ${PORT%.*})
|
||||
case $STATE in
|
||||
1) # up
|
||||
case $ADDR} in
|
||||
case ${ADDR[1]} in
|
||||
GW4)
|
||||
# no existing default and new default is defined?
|
||||
IPV4=$(ip -4 -br addr show to $ADDR dev $PORT)
|
||||
IPV4=$(ip -4 -br addr show scope global primary dev $PORT | awk '{print $3;exit}')
|
||||
if [[ -n $IPV4 ]]; then
|
||||
ROUTE=$(ip -4 route show to default dev $PORT)
|
||||
[[ -z $ROUTE ]] && ip -4 route add dev ${TASK[$i]/GW4/}
|
||||
@@ -73,14 +72,14 @@ while :; do
|
||||
;;
|
||||
GW6)
|
||||
# no existing default and new default is defined?
|
||||
IPV6=$(ip -6 -br addr show to $ADDR dev $PORT)
|
||||
IPV6=$(ip -6 -br addr show scope global primary -deprecated dev $PORT | awk '{print $3;exit}')
|
||||
if [[ -n $IPV6 ]]; then
|
||||
ROUTE=$(ip -6 route show to default dev $PORT)
|
||||
[[ -z $ROUTE ]] && ip -6 route add dev ${TASK[$i]/GW6/}
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
IPA=$(ip -br addr show to $ADDR dev $PORT)
|
||||
IPA=$(ip -br addr show to ${ADDR[1]} dev $PORT)
|
||||
if [[ -f /var/tmp/$PORT.down ]]; then
|
||||
# Special treatment for shim and vhost interfaces
|
||||
[[ -n $IPA ]] && ip addr del dev ${TASK[$i]}
|
||||
@@ -93,7 +92,7 @@ while :; do
|
||||
;;
|
||||
0) # down
|
||||
# IP address present, remove it
|
||||
[[ -n $(ip -br addr show to $ADDR dev $PORT) ]] && ip addr del dev ${TASK[$i]}
|
||||
[[ -n $(ip -br addr show to ${ADDR[1]} dev $PORT) ]] && ip addr del dev ${TASK[$i]}
|
||||
;;
|
||||
esac
|
||||
LAST=${PORT%.*}
|
||||
|
||||
Reference in New Issue
Block a user