mirror of
https://github.com/swissmakers/fail2ban-ui.git
synced 2026-04-11 13:47:05 +02:00
Reload all remote servers after updating action files
This commit is contained in:
@@ -1971,18 +1971,46 @@ func UpdateSettingsHandler(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// Update action files for remote servers if callback URL changed
|
||||
if callbackURLChanged {
|
||||
config.DebugLog("Callback URL changed, updating action files and reloading fail2ban on all servers")
|
||||
|
||||
// Update action files for remote servers (SSH and Agent)
|
||||
if err := fail2ban.GetManager().UpdateActionFiles(c.Request.Context()); err != nil {
|
||||
config.DebugLog("Warning: failed to update some remote action files: %v", err)
|
||||
// Don't fail the request, just log the warning
|
||||
}
|
||||
|
||||
// Reload all remote servers after updating action files
|
||||
connectors := fail2ban.GetManager().Connectors()
|
||||
for _, conn := range connectors {
|
||||
server := conn.Server()
|
||||
// Only reload remote servers (SSH and Agent), local will be handled separately
|
||||
if (server.Type == "ssh" || server.Type == "agent") && server.Enabled {
|
||||
config.DebugLog("Reloading fail2ban on %s after callback URL change", server.Name)
|
||||
if err := conn.Reload(c.Request.Context()); err != nil {
|
||||
config.DebugLog("Warning: failed to reload fail2ban on %s after updating action file: %v", server.Name, err)
|
||||
} else {
|
||||
config.DebugLog("Successfully reloaded fail2ban on %s", server.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Also update local action file if callback URL changed
|
||||
settings := config.GetSettings()
|
||||
for _, server := range settings.Servers {
|
||||
if server.Type == "local" && server.Enabled {
|
||||
if err := config.EnsureLocalFail2banAction(server); err != nil {
|
||||
config.DebugLog("Warning: failed to update local action file: %v", err)
|
||||
} else {
|
||||
// Reload local fail2ban after updating action file
|
||||
if conn, err := fail2ban.GetManager().Connector(server.ID); err == nil {
|
||||
config.DebugLog("Reloading local fail2ban after callback URL change")
|
||||
if reloadErr := conn.Reload(c.Request.Context()); reloadErr != nil {
|
||||
config.DebugLog("Warning: failed to reload local fail2ban after updating action file: %v", reloadErr)
|
||||
} else {
|
||||
config.DebugLog("Successfully reloaded local fail2ban")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user