package ingest import ( "log" "net" "strings" "git.apinb.com/ops/logs/internal/config" "github.com/gosnmp/gosnmp" ) func StartTrapUDP() { addr := strings.TrimSpace(config.Spec.Ingest.TrapListenAddr) if addr == "" { return } go func() { tl := gosnmp.NewTrapListener() tl.OnNewTrap = func(pkt *gosnmp.SnmpPacket, u *net.UDPAddr) { if u == nil || pkt == nil { return } ua := *u Global.HandleTrap(&ua, pkt) } tl.Params = gosnmp.Default tl.Params.Logger = gosnmp.NewLogger(log.Default()) if err := tl.Listen(addr); err != nil { log.Printf("logs: trap listener %s: %v", addr, err) } }() }