summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Vyr Cossont <VyrCossont@users.noreply.github.com>2024-06-04 02:33:39 -0700
committerLibravatar GitHub <noreply@github.com>2024-06-04 10:33:39 +0100
commit45fe295caa633d0477796a028f1e93382a2a2ce9 (patch)
treebd0f6a139991bd368d25db09724fcf1a9bcea2d7
parent[feature] log worker startup counts (#2958) (diff)
downloadgotosocial-45fe295caa633d0477796a028f1e93382a2a2ce9.tar.xz
Compile filter keyword regexps when touched through PutFilter or UpdateFilter (#2951)
Followup to #2903
-rw-r--r--internal/db/bundb/filter.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/db/bundb/filter.go b/internal/db/bundb/filter.go
index 30a8494a7..2ac9f6a81 100644
--- a/internal/db/bundb/filter.go
+++ b/internal/db/bundb/filter.go
@@ -154,6 +154,13 @@ func (f *filterDB) populateFilter(ctx context.Context, filter *gtsmodel.Filter)
}
func (f *filterDB) PutFilter(ctx context.Context, filter *gtsmodel.Filter) error {
+ // Pre-compile filter keyword regular expressions.
+ for _, filterKeyword := range filter.Keywords {
+ if err := filterKeyword.Compile(); err != nil {
+ return gtserror.Newf("error compiling filter keyword regex: %w", err)
+ }
+ }
+
// Update database.
if err := f.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
if _, err := tx.
@@ -225,6 +232,13 @@ func (f *filterDB) UpdateFilter(
}
}
+ // Pre-compile filter keyword regular expressions.
+ for _, filterKeyword := range filter.Keywords {
+ if err := filterKeyword.Compile(); err != nil {
+ return gtserror.Newf("error compiling filter keyword regex: %w", err)
+ }
+ }
+
// Update database.
if err := f.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
if _, err := tx.