aboutsummaryrefslogtreecommitdiff
path: root/rules_manager.go
diff options
context:
space:
mode:
authorEmiliano Ciavatta2021-07-28 12:37:48 +0000
committerEmiliano Ciavatta2021-07-28 12:37:48 +0000
commit49f9a5f352d4b54fa6331fe096be8206d8daa79a (patch)
tree19682322209e2041976a6028e3c5ceefe27094cc /rules_manager.go
parente029a04123dc77499d5e953ca81d6b849aa39252 (diff)
Update regex patterns management
Diffstat (limited to 'rules_manager.go')
-rw-r--r--rules_manager.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/rules_manager.go b/rules_manager.go
index 736d561..ed1932d 100644
--- a/rules_manager.go
+++ b/rules_manager.go
@@ -315,11 +315,20 @@ func (rm *rulesManagerImpl) validateAndAddRuleLocal(rule *Rule) error {
return err
}
+ regex := pattern.Regex
+ if !strings.HasPrefix(regex, "/") {
+ regex = fmt.Sprintf("/%s", regex)
+ }
+ if !strings.HasSuffix(regex, "/") {
+ regex = fmt.Sprintf("%s/", regex)
+ }
+ rule.Patterns[i].Regex = regex
+
compiledPattern, err := pattern.BuildPattern()
if err != nil {
return err
}
- regex := compiledPattern.String()
+ regex = compiledPattern.String()
if _, isPresent := duplicatePatterns[regex]; isPresent {
return errors.New("duplicate pattern")
}
@@ -366,10 +375,6 @@ func (rm *rulesManagerImpl) generateDatabase(version RowID) error {
}
func (p *Pattern) BuildPattern() (*hyperscan.Pattern, error) {
- if !strings.HasPrefix(p.Regex, "/") || !strings.HasSuffix(p.Regex, "/") {
- p.Regex = fmt.Sprintf("/%s/", p.Regex)
- }
-
hp, err := hyperscan.ParsePattern(p.Regex)
if err != nil {
return nil, err