31 lines
622 B
Go
31 lines
622 B
Go
package yara
|
|
|
|
import (
|
|
"git.jmbit.de/jmb/scanfile/server/internal/database"
|
|
"git.jmbit.de/jmb/scanfile/server/internal/sqlc"
|
|
)
|
|
|
|
func InitYara() error {
|
|
return compileSourcesFromFiles()
|
|
}
|
|
|
|
func YaraProcessing(job sqlc.ProcessingJob) error {
|
|
database.StartProcessingJob(job.ID)
|
|
results, err := scanFile(job.FileID.String())
|
|
if err != nil {
|
|
database.FailProcessingJob(job.ID, err)
|
|
return err
|
|
}
|
|
|
|
params := sqlc.InsertYaraResultsParams{
|
|
FileID: job.FileID,
|
|
Matched: results,
|
|
}
|
|
err = database.InsertYaraResults(params)
|
|
if err != nil {
|
|
database.FailProcessingJob(job.ID, err)
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|