fix(inputs.snmp_trap): nil map panic when use snmp_trap with netsnmp translator (#11534)

This commit is contained in:
papapiya 2022-07-22 17:23:41 +08:00 committed by GitHub
parent 9f3a7414a9
commit 79235cb224
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View File

@ -82,8 +82,10 @@ func (s *netsnmpTranslator) snmptranslate(oid string) (e snmp.MibEntry, err erro
return e, nil
}
func newNetsnmpTranslator() *netsnmpTranslator {
func newNetsnmpTranslator(timeout config.Duration) *netsnmpTranslator {
return &netsnmpTranslator{
execCmd: realExecCmd,
cache: make(map[string]snmp.MibEntry),
Timeout: timeout,
}
}

View File

@ -17,6 +17,8 @@ import (
"github.com/influxdata/telegraf/plugins/inputs"
)
var defaultTimeout = config.Duration(time.Second * 5)
// DO NOT REMOVE THE NEXT TWO LINES! This is required to embed the sampleConfig data.
//go:embed sample.conf
var sampleConfig string
@ -68,6 +70,7 @@ func init() {
return &SnmpTrap{
timeFunc: time.Now,
ServiceAddress: "udp://:162",
Timeout: defaultTimeout,
Path: []string{"/usr/share/snmp/mibs"},
Version: "2c",
}
@ -87,7 +90,7 @@ func (s *SnmpTrap) Init() error {
return err
}
case "netsnmp":
s.translator = newNetsnmpTranslator()
s.translator = newNetsnmpTranslator(s.Timeout)
default:
return fmt.Errorf("invalid translator value")
}