in pkg/generator/cef/cef.go [131:161]
func (c *CEF) addExtension(abbrev string, have map[string]bool) {
cand := extensionMapping[abbrev]
if cand.Wants == "" && !have[cand.Abbrev] {
c.Extensions = append(c.Extensions, cand.Render(c.config))
have[cand.Abbrev] = true
return
}
var add []mappedField
seen := make(map[string]bool)
for {
if seen[cand.Abbrev] {
panic(fmt.Sprintf("cycle including %s", cand.Abbrev))
}
seen[cand.Abbrev] = true
add = append(add, cand)
if cand.Wants == "" {
if len(add) > c.Max {
add = add[len(add)-c.Max:]
}
for _, a := range add {
if have[a.Abbrev] {
continue
}
c.Extensions = append(c.Extensions, a.Render(c.config))
have[a.Abbrev] = true
}
break
}
cand = extensionMapping[cand.Wants]
}
}