* plugin/forward: add it This moves coredns/forward into CoreDNS. Fixes as a few bugs, adds a policy option and more tests to the plugin. Update the documentation, test IPv6 address and add persistent tests. * Always use random policy when spraying * include scrub fix here as well * use correct var name * Code review * go vet * Move logging to metrcs * Small readme updates * Fix readme
30 lines
505 B
Go
30 lines
505 B
Go
package forward
|
|
|
|
// Copied from coredns/core/dnsserver/address.go
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// protocol returns the protocol of the string s. The second string returns s
|
|
// with the prefix chopped off.
|
|
func protocol(s string) (int, string) {
|
|
switch {
|
|
case strings.HasPrefix(s, _tls+"://"):
|
|
return TLS, s[len(_tls)+3:]
|
|
case strings.HasPrefix(s, _dns+"://"):
|
|
return DNS, s[len(_dns)+3:]
|
|
}
|
|
return DNS, s
|
|
}
|
|
|
|
// Supported protocols.
|
|
const (
|
|
DNS = iota + 1
|
|
TLS
|
|
)
|
|
|
|
const (
|
|
_dns = "dns"
|
|
_tls = "tls"
|
|
)
|