Fix: Fail2ban Restzeit-Fallback bei abgelaufenem DB-Eintrag + Update-Modal 2s Verzögerung vor done-State
parent
21015e69a3
commit
d84537b343
|
|
@ -154,10 +154,7 @@ class Fail2banBanlist extends Component
|
|||
escapeshellarg($db), escapeshellarg($q));
|
||||
$out = trim((string)@shell_exec($cmd));
|
||||
|
||||
if ($out === '') {
|
||||
return ['permanent' => $fallbackPermanent, 'remaining' => ''];
|
||||
}
|
||||
|
||||
if ($out !== '') {
|
||||
[$timeofban, $bantime] = array_pad(explode('|', $out), 2, '0');
|
||||
$timeofban = (int)$timeofban;
|
||||
$bantime = (int)$bantime;
|
||||
|
|
@ -166,11 +163,23 @@ class Fail2banBanlist extends Component
|
|||
return ['permanent' => true, 'remaining' => ''];
|
||||
}
|
||||
|
||||
$remaining = max(0, ($timeofban + $bantime) - time());
|
||||
return [
|
||||
'permanent' => false,
|
||||
'remaining' => $this->formatRemaining($remaining),
|
||||
];
|
||||
$remaining = ($timeofban + $bantime) - time();
|
||||
if ($remaining > 0) {
|
||||
return ['permanent' => false, 'remaining' => $this->formatRemaining($remaining)];
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback: DB-Eintrag ist abgelaufen (fail2ban-Neustart setzt Timer intern neu,
|
||||
// ohne die DB zu aktualisieren) → konfigurierte Jail-Banzeit als Näherung
|
||||
$cfgBantime = (int)trim($this->f2b('get ' . escapeshellarg($jail) . ' bantime'));
|
||||
if ($cfgBantime < 0) {
|
||||
return ['permanent' => true, 'remaining' => ''];
|
||||
}
|
||||
if ($cfgBantime > 0) {
|
||||
return ['permanent' => false, 'remaining' => '≤ ' . $this->formatRemaining($cfgBantime)];
|
||||
}
|
||||
|
||||
return ['permanent' => $fallbackPermanent, 'remaining' => ''];
|
||||
}
|
||||
|
||||
private function formatRemaining(int $seconds): string
|
||||
|
|
|
|||
|
|
@ -369,6 +369,9 @@ _cleanup() {
|
|||
sudo -u "${APP_USER}" php "${APP_DIR}/artisan" optimize:clear 2>&1 || true
|
||||
sudo -u "${APP_USER}" php "${APP_DIR}/artisan" optimize 2>&1 || true
|
||||
fi
|
||||
# Kurz warten damit das tee-Pipe den Log vollständig schreibt
|
||||
# bevor der State auf "done" gesetzt wird
|
||||
sleep 2
|
||||
mkdir -p "$STATE_DIR"
|
||||
echo "done" > "$STATE_DIR/state"
|
||||
echo "$rc" > "$STATE_DIR/rc"
|
||||
|
|
|
|||
Loading…
Reference in New Issue