feat: daemon add ctx and done signal, judge fix problem with double ban ip, db add new methods
All checks were successful
CI.yml / build (push) Successful in 1m58s

This commit is contained in:
d3m0k1d
2026-01-15 22:32:03 +03:00
parent 1603fbee35
commit 680973df3d
5 changed files with 53 additions and 6 deletions

View File

@@ -1,7 +1,10 @@
package command
import (
"context"
"os"
"os/signal"
"syscall"
"time"
"github.com/d3m0k1d/BanForge/internal/blocker"
@@ -17,6 +20,8 @@ var DaemonCmd = &cobra.Command{
Use: "daemon",
Short: "Run BanForge daemon process",
Run: func(cmd *cobra.Command, args []string) {
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGTERM, syscall.SIGINT)
defer stop()
log := logger.New(false)
log.Info("Starting BanForge daemon")
db, err := storage.NewDB()
@@ -77,6 +82,7 @@ var DaemonCmd = &cobra.Command{
}
go pars.Start()
defer pars.Stop()
go func(p *parser.Scanner, serviceName string) {
log.Info("Starting nginx parser", "service", serviceName)
ng := parser.NewNginxParser()
@@ -85,7 +91,7 @@ var DaemonCmd = &cobra.Command{
go storage.Write(db, resultCh)
}(pars, svc.Name)
}
select {}
<-ctx.Done()
log.Info("Shutdown signal received")
},
}