summaryrefslogtreecommitdiff
path: root/plugin/special
diff options
context:
space:
mode:
authorLoyalsoldier <[email protected]>2024-07-06 18:04:33 +0800
committerLoyalsoldier <[email protected]>2024-07-06 18:04:33 +0800
commite3800440ce05aa1b8f27d56f47bbeef20f9499c6 (patch)
tree5c85e84b7c02713b75738649e483b5758027d011 /plugin/special
parent5843ee29c435b393bec57a367775c2f4e266eedc (diff)
Fix: remove entry & prefix
Diffstat (limited to 'plugin/special')
-rw-r--r--plugin/special/cutter.go4
-rw-r--r--plugin/special/private.go4
-rw-r--r--plugin/special/stdin.go29
-rw-r--r--plugin/special/test.go4
4 files changed, 27 insertions, 14 deletions
diff --git a/plugin/special/cutter.go b/plugin/special/cutter.go
index c5543c2b..d14e286d 100644
--- a/plugin/special/cutter.go
+++ b/plugin/special/cutter.go
@@ -89,7 +89,9 @@ func (c *cutter) Input(container lib.Container) (lib.Container, error) {
if len(wantList) > 0 && !wantList[name] {
continue
}
- container.Remove(name, ignoreIPType)
+ if err := container.Remove(entry, lib.CaseRemoveEntry, ignoreIPType); err != nil {
+ return nil, err
+ }
}
return container, nil
diff --git a/plugin/special/private.go b/plugin/special/private.go
index a3907aee..ec81acd1 100644
--- a/plugin/special/private.go
+++ b/plugin/special/private.go
@@ -85,7 +85,9 @@ func (p *private) Input(container lib.Container) (lib.Container, error) {
return nil, err
}
case lib.ActionRemove:
- container.Remove(entryNamePrivate)
+ if err := container.Remove(entry, lib.CaseRemovePrefix); err != nil {
+ return nil, err
+ }
default:
return nil, lib.ErrUnknownAction
}
diff --git a/plugin/special/stdin.go b/plugin/special/stdin.go
index 1f59c1fe..4f56d756 100644
--- a/plugin/special/stdin.go
+++ b/plugin/special/stdin.go
@@ -3,6 +3,7 @@ package special
import (
"bufio"
"encoding/json"
+ "fmt"
"os"
"strings"
@@ -35,6 +36,10 @@ func newStdin(action lib.Action, data json.RawMessage) (lib.InputConverter, erro
}
}
+ if tmp.Name == "" {
+ return nil, fmt.Errorf("type %s | action %s missing name", typeStdin, action)
+ }
+
return &stdin{
Type: typeStdin,
Action: action,
@@ -81,15 +86,8 @@ func (s *stdin) Input(container lib.Container) (lib.Container, error) {
continue
}
- switch s.Action {
- case lib.ActionAdd:
- if err := entry.AddPrefix(line); err != nil {
- continue
- }
- case lib.ActionRemove:
- if err := entry.RemovePrefix(line); err != nil {
- continue
- }
+ if err := entry.AddPrefix(line); err != nil {
+ continue
}
}
@@ -105,8 +103,17 @@ func (s *stdin) Input(container lib.Container) (lib.Container, error) {
ignoreIPType = lib.IgnoreIPv4
}
- if err := container.Add(entry, ignoreIPType); err != nil {
- return nil, err
+ switch s.Action {
+ case lib.ActionAdd:
+ if err := container.Add(entry, ignoreIPType); err != nil {
+ return nil, err
+ }
+ case lib.ActionRemove:
+ if err := container.Remove(entry, lib.CaseRemovePrefix, ignoreIPType); err != nil {
+ return nil, err
+ }
+ default:
+ return nil, lib.ErrUnknownAction
}
return container, nil
diff --git a/plugin/special/test.go b/plugin/special/test.go
index 9a19004f..cf83ed83 100644
--- a/plugin/special/test.go
+++ b/plugin/special/test.go
@@ -65,7 +65,9 @@ func (t *test) Input(container lib.Container) (lib.Container, error) {
return nil, err
}
case lib.ActionRemove:
- container.Remove(entryNameTest)
+ if err := container.Remove(entry, lib.CaseRemovePrefix); err != nil {
+ return nil, err
+ }
default:
return nil, lib.ErrUnknownAction
}