força ip renewal on eth0

This commit is contained in:
2026-02-15 16:25:42 +00:00
parent 753abb483d
commit d2d28580a2
+26 -8
View File
@@ -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