fleet/server/datastore/inmem/yara.go
2017-02-01 10:20:50 -07:00

36 lines
1.0 KiB
Go

package inmem
import "github.com/kolide/kolide/server/kolide"
func (d *Datastore) NewYARASignatureGroup(ysg *kolide.YARASignatureGroup) (*kolide.YARASignatureGroup, error) {
d.mtx.Lock()
defer d.mtx.Unlock()
ysg.ID = d.nextID(ysg)
d.yaraSignatureGroups[ysg.ID] = ysg
return ysg, nil
}
func (d *Datastore) NewYARAFilePath(fileSectionName, sigGroupName string) error {
d.mtx.Lock()
defer d.mtx.Unlock()
d.yaraFilePaths[fileSectionName] = append(d.yaraFilePaths[fileSectionName], sigGroupName)
return nil
}
func (d *Datastore) YARASection() (*kolide.YARASection, error) {
d.mtx.Lock()
defer d.mtx.Unlock()
result := &kolide.YARASection{
Signatures: make(map[string][]string),
FilePaths: make(map[string][]string),
}
for _, ysg := range d.yaraSignatureGroups {
result.Signatures[ysg.SignatureName] = append(result.Signatures[ysg.SignatureName], ysg.Paths...)
}
for fileSection, sigSection := range d.yaraFilePaths {
result.FilePaths[fileSection] = append(result.FilePaths[fileSection], sigSection...)
}
return result, nil
}