try to fix

This commit is contained in:
AlteredCoder 2020-06-24 18:14:06 +02:00
parent 68c749bc9c
commit 6b27b311df
3 changed files with 8 additions and 5 deletions

View file

@ -19,6 +19,7 @@ type EnricherCtx struct {
Name string
Path string //path to .so ?
RuntimeCtx interface{} //the internal context of plugin, given back over every call
initiated bool
}
/* mimic plugin loading */
@ -40,8 +41,10 @@ func Loadplugin(path string) (EnricherCtx, error) {
c.RuntimeCtx, err = c.Init(map[string]string{"datadir": path})
if err != nil {
log.Fatalf("load (fake) plugin load : %v", err)
log.Warningf("load (fake) plugin load : %v", err)
c.initiated = false
}
c.initiated = true
return c, nil
}

View file

@ -88,13 +88,13 @@ func (n *Node) validate(pctx *UnixParserCtx) error {
}
method_found := false
for _, enricherCtx := range ECTX {
if _, ok := enricherCtx.Funcs[static.Method]; ok {
if _, ok := enricherCtx.Funcs[static.Method]; ok && enricherCtx.initiated {
method_found = true
break
}
}
if !method_found {
return fmt.Errorf("the method '%s' doesn't exist", static.Method)
return fmt.Errorf("the method '%s' doesn't exist or the plugin has not been initialized", static.Method)
}
} else {
if static.Meta == "" && static.Parsed == "" && static.TargetByName == "" {

View file

@ -148,7 +148,7 @@ func ProcessStatics(statics []types.ExtraField, p *types.Event, clog *logrus.Ent
processed := false
/*still way too hackish, but : inject all the results in enriched, and */
for _, x := range ECTX {
if fptr, ok := x.Funcs[static.Method]; ok {
if fptr, ok := x.Funcs[static.Method]; ok && x.initiated {
clog.Tracef("Found method '%s'", static.Method)
ret, err := fptr(value, p, x.RuntimeCtx)
if err != nil {
@ -165,7 +165,7 @@ func ProcessStatics(statics []types.ExtraField, p *types.Event, clog *logrus.Ent
}
break
} else {
clog.Warningf("method '%s' doesn't exist", static.Method)
clog.Warningf("method '%s' doesn't exist or plugin not initialized", static.Method)
}
}
if !processed {