fix: recover from fail2ban server restarts

Update the code collecting metrics to open a new socket connection each
time metrics are collected. This ensures that a new socket connection is
used each time and avoids errors caused by fail2ban being restarted.
This commit is contained in:
Hector
2021-08-30 07:36:15 +01:00
parent aef73df3fa
commit acb40a94bd
2 changed files with 26 additions and 16 deletions

View File

@ -21,15 +21,19 @@ type JailStats struct {
BannedTotal int
}
func MustConnectToSocket(path string) *Fail2BanSocket {
func ConnectToSocket(path string) (*Fail2BanSocket, error) {
c, err := net.Dial("unix", path)
if err != nil {
log.Fatalf("failed to open fail2ban socket: %v", err)
return nil, err
}
return &Fail2BanSocket{
socket: c,
encoder: ogórek.NewEncoder(c),
}
}, nil
}
func (s *Fail2BanSocket) Close() error {
return s.socket.Close()
}
func (s *Fail2BanSocket) Ping() bool {