This commit is contained in:
@@ -20,7 +20,12 @@ type Judge struct {
|
|||||||
resultCh chan *storage.LogEntry
|
resultCh chan *storage.LogEntry
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(db *storage.DB, b blocker.BlockerEngine, resultCh chan *storage.LogEntry, entryCh chan *storage.LogEntry) *Judge {
|
func New(
|
||||||
|
db *storage.DB,
|
||||||
|
b blocker.BlockerEngine,
|
||||||
|
resultCh chan *storage.LogEntry,
|
||||||
|
entryCh chan *storage.LogEntry,
|
||||||
|
) *Judge {
|
||||||
return &Judge{
|
return &Judge{
|
||||||
db: db,
|
db: db,
|
||||||
logger: logger.New(false),
|
logger: logger.New(false),
|
||||||
@@ -46,7 +51,15 @@ func (j *Judge) Tribunal() {
|
|||||||
j.logger.Info("Tribunal started")
|
j.logger.Info("Tribunal started")
|
||||||
|
|
||||||
for entry := range j.entryCh {
|
for entry := range j.entryCh {
|
||||||
j.logger.Debug("Processing entry", "ip", entry.IP, "service", entry.Service, "status", entry.Status)
|
j.logger.Debug(
|
||||||
|
"Processing entry",
|
||||||
|
"ip",
|
||||||
|
entry.IP,
|
||||||
|
"service",
|
||||||
|
entry.Service,
|
||||||
|
"status",
|
||||||
|
entry.Status,
|
||||||
|
)
|
||||||
|
|
||||||
rules, serviceExists := j.rulesByService[entry.Service]
|
rules, serviceExists := j.rulesByService[entry.Service]
|
||||||
if !serviceExists {
|
if !serviceExists {
|
||||||
@@ -86,7 +99,15 @@ func (j *Judge) Tribunal() {
|
|||||||
|
|
||||||
err = j.db.AddBan(entry.IP, rule.BanTime)
|
err = j.db.AddBan(entry.IP, rule.BanTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
j.logger.Error("Failed to add ban to database", "ip", entry.IP, "ban_time", rule.BanTime, "error", err)
|
j.logger.Error(
|
||||||
|
"Failed to add ban to database",
|
||||||
|
"ip",
|
||||||
|
entry.IP,
|
||||||
|
"ban_time",
|
||||||
|
rule.BanTime,
|
||||||
|
"error",
|
||||||
|
err,
|
||||||
|
)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +115,15 @@ func (j *Judge) Tribunal() {
|
|||||||
j.logger.Error("Failed to ban IP at firewall", "ip", entry.IP, "error", err)
|
j.logger.Error("Failed to ban IP at firewall", "ip", entry.IP, "error", err)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
j.logger.Info("IP banned successfully", "ip", entry.IP, "rule", rule.Name, "ban_time", rule.BanTime)
|
j.logger.Info(
|
||||||
|
"IP banned successfully",
|
||||||
|
"ip",
|
||||||
|
entry.IP,
|
||||||
|
"rule",
|
||||||
|
rule.Name,
|
||||||
|
"ban_time",
|
||||||
|
rule.BanTime,
|
||||||
|
)
|
||||||
j.resultCh <- entry
|
j.resultCh <- entry
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ package storage
|
|||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/d3m0k1d/BanForge/internal/config"
|
"github.com/d3m0k1d/BanForge/internal/config"
|
||||||
"github.com/d3m0k1d/BanForge/internal/logger"
|
"github.com/d3m0k1d/BanForge/internal/logger"
|
||||||
"github.com/jedib0t/go-pretty/v6/table"
|
"github.com/jedib0t/go-pretty/v6/table"
|
||||||
_ "modernc.org/sqlite"
|
_ "modernc.org/sqlite"
|
||||||
"os"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type DB struct {
|
type DB struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user