From 059c6e9df72af5cf7e5616e409db867e44fd2840 Mon Sep 17 00:00:00 2001 From: Marc Brugger Date: Sun, 4 Feb 2024 08:55:53 +0100 Subject: [PATCH] Handle nil user rules correctly #295 (#296) * Handle nil user rules correctly #295 --- pkg/client/client.go | 6 +++++- pkg/client/client_test.go | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 397d568..fdca8e9 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -261,7 +261,11 @@ func (cl *client) ToggleProtection(enable bool) error { } func (cl *client) SetCustomRules(rules *[]string) error { - cl.log.With("rules", len(*rules)).Info("Set user rules") + var l int + if rules != nil { + l = len(*rules) + } + cl.log.With("rules", l).Info("Set user rules") return cl.doPost(cl.client.R().EnableTrace().SetBody(&model.SetRulesRequest{Rules: rules}), "/filtering/set_rules") } diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index f47cc69..de94243 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -97,6 +97,20 @@ var _ = Describe("Client", func() { err = cl.DeleteFilter(true, model.Filter{Url: "bar"}) Ω(err).ShouldNot(HaveOccurred()) }) + It("should set empty filter rules", func() { + ts, cl = ClientPost("/filtering/set_rules", + `{"rules":[]}`, + ) + err := cl.SetCustomRules(utils.Ptr([]string{})) + Ω(err).ShouldNot(HaveOccurred()) + }) + It("should set nil filter rules", func() { + ts, cl = ClientPost("/filtering/set_rules", + `{}`, + ) + err := cl.SetCustomRules(nil) + Ω(err).ShouldNot(HaveOccurred()) + }) }) Context("Status", func() {