Improved time loop

This commit is contained in:
bergware
2025-04-27 02:53:40 +02:00
parent 7c3f8ceecd
commit e28a18f046
3 changed files with 12 additions and 10 deletions

View File

@@ -39,9 +39,9 @@ function port($dev) {
function carrier($dev, $loop=10) {
if (!port($dev)) return false;
try {
for ($n = 0; $n < $loop; $n++) {
for ($n=0; $n<$loop; $n++) {
if (@file_get_contents("/sys/class/net/$dev/carrier") == 1) return true;
sleep(1);
if ($loop > 0) sleep(1);
}
} catch (Exception $e) {
return false;
@@ -51,7 +51,7 @@ function carrier($dev, $loop=10) {
function thisNet() {
$dev = port('br0') ? 'br0' : (port('bond0') ? 'bond0' : 'eth0');
if (!carrier($dev) && carrier('wlan0', 1)) $dev = 'wlan0';
if (!carrier($dev) && carrier('wlan0', 0)) $dev = 'wlan0';
$ip4 = exec("ip -4 -br addr show dev $dev | awk '{print \$3;exit}'");
$net = exec("ip -4 route show $ip4 dev $dev | awk '{print \$1;exit}'");
$gw = exec("ip -4 route show default dev $dev | awk '{print \$3;exit}'");

View File

@@ -39,8 +39,9 @@ TMP=/var/tmp/network.tmp
carrier(){
local n e
[[ -e $SYSTEM/$1 ]] && e=${2:-10} || return 1
for ((n=1; n<=$e; n++)); do
[[ $(cat $SYSTEM/$1/carrier 2>/dev/null) == 1 ]] && return 0 || sleep 1
for ((n=0; n<$e; n++)); do
[[ $(cat $SYSTEM/$1/carrier 2>/dev/null) == 1 ]] && return 0
[[ $e -gt 0 ]] && sleep 1
done
return 1
}
@@ -262,7 +263,7 @@ docker_network_start(){
fi
X=${NIC//[^0-9]/}
REF=$(grep -Pom1 "<Network>\K(br|bond|eth|wlan)$X" $XMLFILE)
[[ $X == 0 && ! $(carrier $NIC 1) ]] && continue
[[ $X == 0 && ! $(carrier $NIC 0) ]] && continue
[[ $X == 0 && $NIC != wlan0 ]] && MAIN=$NIC
[[ $NIC == wlan0 && -n $MAIN ]] && continue
if [[ -n $REF && $REF != $NIC ]]; then

View File

@@ -80,8 +80,9 @@ hex(){
carrier(){
local n e
[[ -e $SYSTEM/$1 ]] && e=${2:-10} || return 1
for ((n=1; n<=$e; n++)); do
[[ $(cat $SYSTEM/$1/carrier 2>/dev/null) == 1 ]] && return 0 || sleep 1
for ((n=0; n<$e; n++)); do
[[ $(cat $SYSTEM/$1/carrier 2>/dev/null) == 1 ]] && return 0
[[ $e -gt 0 ]] && sleep 1
done
return 1
}
@@ -234,11 +235,11 @@ wifi_start(){
$OPENSSL load
# start active SSID
$STARTWIFI
if ! carrier $PORT 1; then
if ! carrier $PORT 0; then
# try the saved SSIDs
for SSID in $(grep -P '^\[.+\]$' $CFG | sed 1d | sed -r 's/\[|\]/"/g'); do
[[ -n $SSID ]] && $STARTWIFI "$SSID" || break
if carrier $PORT 1; then break; fi
if carrier $PORT 0; then break; fi
done
fi
if wifi_running; then REPLY="Started"; else REPLY="Failed"; fi