diff options
author | 2019-07-14 04:44:00 -0400 | |
---|---|---|
committer | 2019-07-14 08:44:00 +0000 | |
commit | db417f97af5e4c9d694be143c04d0be03fafa1a7 (patch) | |
tree | fcee2f1c9830d4262756992e2c1302f758846aea | |
parent | 2213a12d21a9a95e2246ebe6bb3e47778f57dae8 (diff) | |
download | coredns-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.go | 111 |
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 -} |