força ip renewal on eth0
This commit is contained in:
Vendored
+26
-8
@@ -194,6 +194,25 @@ disable_wifi() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Função para forçar renovação de IP
|
||||
force_ip_renewal() {
|
||||
local iface="$1"
|
||||
|
||||
if systemctl is-active --quiet systemd-networkd; then
|
||||
log "A forçar renovação de IP em $iface (reiniciando systemd-networkd)..."
|
||||
if systemctl restart systemd-networkd; then
|
||||
log "Serviço systemd-networkd reiniciado com sucesso. IP deve ser atribuído em breve."
|
||||
return 0
|
||||
else
|
||||
log "Erro: Falha ao reiniciar systemd-networkd."
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
log "Aviso: systemd-networkd não está ativo. Tentando alternativa..."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Tarefa em Background para monitorizar rede
|
||||
monitor_network_task() {
|
||||
log "Monitor: A iniciar monitorização contínua da rede..."
|
||||
@@ -228,19 +247,18 @@ monitor_network_task() {
|
||||
log "Monitor: Wi-Fi ($WLAN_IFACE) já está desativado ou não encontrado."
|
||||
fi
|
||||
else
|
||||
log "Monitor: Interface $IFACE ativa mas sem IP. Wi-Fi permanece ativo ou inicia ativação."
|
||||
if ip link show "$WLAN_IFACE" &> /dev/null; then
|
||||
if ip link show "$WLAN_IFACE" | grep -q "DOWN"; then
|
||||
log "Monitor: Interface $IFACE ativa mas sem IP. Tentando forçar renovação de IP..."
|
||||
if force_ip_renewal "$IFACE"; then
|
||||
log "Monitor: Renovação de IP bem-sucedida. Wi-Fi permanece ativo até confirmação."
|
||||
else
|
||||
log "Monitor: Falha ao renovar IP. Ativando Wi-Fi como fallback..."
|
||||
if ip link show "$WLAN_IFACE" &> /dev/null && ip link show "$WLAN_IFACE" | grep -q "DOWN"; then
|
||||
if ip link set "$WLAN_IFACE" up; then
|
||||
log "Monitor: Wi-Fi ($WLAN_IFACE) ativado com sucesso."
|
||||
log "Monitor: Wi-Fi ($WLAN_IFACE) ativado como fallback."
|
||||
else
|
||||
log "Monitor: Falha ao ativar Wi-Fi ($WLAN_IFACE)."
|
||||
fi
|
||||
else
|
||||
log "Monitor: Wi-Fi ($WLAN_IFACE) já está ativo."
|
||||
fi
|
||||
else
|
||||
log "Monitor: Interface $WLAN_IFACE não encontrada."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user