aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Charlie Vieth <charlie.vieth@gmail.com> 2019-07-14 04:44:00 -0400
committerGravatar Miek Gieben <miek@miek.nl> 2019-07-14 08:44:00 +0000
commitdb417f97af5e4c9d694be143c04d0be03fafa1a7 (patch)
treefcee2f1c9830d4262756992e2c1302f758846aea
parent2213a12d21a9a95e2246ebe6bb3e47778f57dae8 (diff)
downloadcoredns-db417f97af5e4c9d694be143c04d0be03fafa1a7.tar.gz
coredns-db417f97af5e4c9d694be143c04d0be03fafa1a7.tar.zst
coredns-db417f97af5e4c9d694be143c04d0be03fafa1a7.zip
rewrite: remove condition file (#3003)
Nothing it declares is used by CoreDNS and it does not appear to be used by any third-party packages (according to godoc.org).
-rw-r--r--plugin/rewrite/condition.go111
1 files changed, 0 insertions, 111 deletions
diff --git a/plugin/rewrite/condition.go b/plugin/rewrite/condition.go
deleted file mode 100644
index 0d9e4b18e..000000000
--- a/plugin/rewrite/condition.go
+++ /dev/null
@@ -1,111 +0,0 @@
-package rewrite
-
-import (
- "context"
- "fmt"
- "regexp"
- "strings"
-
- "github.com/coredns/coredns/plugin/pkg/replacer"
- "github.com/coredns/coredns/request"
-
- "github.com/miekg/dns"
-)
-
-// Operators that are defined.
-const (
- Is = "is"
- Not = "not"
- Has = "has"
- NotHas = "not_has"
- StartsWith = "starts_with"
- EndsWith = "ends_with"
- Match = "match"
- NotMatch = "not_match"
-)
-
-var repl = replacer.New()
-
-// condition is a rewrite condition.
-type condition func(string, string) bool
-
-var conditions = map[string]condition{
- Is: isFunc,
- Not: notFunc,
- Has: hasFunc,
- NotHas: notHasFunc,
- StartsWith: startsWithFunc,
- EndsWith: endsWithFunc,
- Match: matchFunc,
- NotMatch: notMatchFunc,
-}
-
-// isFunc is condition for Is operator. It checks for equality.
-func isFunc(a, b string) bool { return a == b }
-
-// notFunc is condition for Not operator. It checks for inequality.
-func notFunc(a, b string) bool { return a != b }
-
-// hasFunc is condition for Has operator. It checks if b is a substring of a.
-func hasFunc(a, b string) bool { return strings.Contains(a, b) }
-
-// notHasFunc is condition for NotHas operator. It checks if b is not a substring of a.
-func notHasFunc(a, b string) bool { return !strings.Contains(a, b) }
-
-// startsWithFunc is condition for StartsWith operator. It checks if b is a prefix of a.
-func startsWithFunc(a, b string) bool { return strings.HasPrefix(a, b) }
-
-// endsWithFunc is condition for EndsWith operator. It checks if b is a suffix of a.
-func endsWithFunc(a, b string) bool {
- // TODO(miek): IsSubDomain
- return strings.HasSuffix(a, b)
-}
-
-// matchFunc is condition for Match operator. It does regexp matching of a against pattern in b
-// and returns if they match.
-func matchFunc(a, b string) bool {
- matched, _ := regexp.MatchString(b, a)
- return matched
-}
-
-// notMatchFunc is condition for NotMatch operator. It does regexp matching of a against pattern in b
-// and returns if they do not match.
-func notMatchFunc(a, b string) bool {
- matched, _ := regexp.MatchString(b, a)
- return !matched
-}
-
-// If is statement for a rewrite condition.
-type If struct {
- A string
- Operator string
- B string
-}
-
-// True returns true if the condition is true and false otherwise.
-// If r is not nil, it replaces placeholders before comparison.
-func (i If) True(r *dns.Msg) bool {
- if c, ok := conditions[i.Operator]; ok {
- a, b := i.A, i.B
- if r != nil {
- ctx := context.TODO()
- state := request.Request{Req: r, W: nil} // hmm W nil?
- a = repl.Replace(ctx, state, nil, i.A)
- b = repl.Replace(ctx, state, nil, i.B)
- }
- return c(a, b)
- }
- return false
-}
-
-// NewIf creates a new If condition.
-func NewIf(a, operator, b string) (If, error) {
- if _, ok := conditions[operator]; !ok {
- return If{}, fmt.Errorf("invalid operator %v", operator)
- }
- return If{
- A: a,
- Operator: operator,
- B: b,
- }, nil
-}