mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 02:33:14 -04:00
Remove the word middleware (#1067)
* Rename middleware to plugin first pass; mostly used 'sed', few spots where I manually changed text. This still builds a coredns binary. * fmt error * Rename AddMiddleware to AddPlugin * Readd AddMiddleware to remain backwards compat
This commit is contained in:
35
plugin/rewrite/class.go
Normal file
35
plugin/rewrite/class.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package rewrite
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
type classRule struct {
|
||||
fromClass, toClass uint16
|
||||
}
|
||||
|
||||
func newClassRule(fromS, toS string) (Rule, error) {
|
||||
var from, to uint16
|
||||
var ok bool
|
||||
if from, ok = dns.StringToClass[strings.ToUpper(fromS)]; !ok {
|
||||
return nil, fmt.Errorf("invalid class %q", strings.ToUpper(fromS))
|
||||
}
|
||||
if to, ok = dns.StringToClass[strings.ToUpper(toS)]; !ok {
|
||||
return nil, fmt.Errorf("invalid class %q", strings.ToUpper(toS))
|
||||
}
|
||||
return &classRule{fromClass: from, toClass: to}, nil
|
||||
}
|
||||
|
||||
// Rewrite rewrites the the current request.
|
||||
func (rule *classRule) Rewrite(w dns.ResponseWriter, r *dns.Msg) Result {
|
||||
if rule.fromClass > 0 && rule.toClass > 0 {
|
||||
if r.Question[0].Qclass == rule.fromClass {
|
||||
r.Question[0].Qclass = rule.toClass
|
||||
return RewriteDone
|
||||
}
|
||||
}
|
||||
return RewriteIgnored
|
||||
}
|
||||
Reference in New Issue
Block a user