mirror of
https://github.com/coredns/coredns.git
synced 2026-07-10 17:50:12 -04:00
* plugin/hosts: add wildcard support for owner names Signed-off-by: youknowforsearch <amirhebrahimzader@gmail.com> * plugin/hosts: document wildcard owner name support Signed-off-by: youknowforsearch <amirhebrahimzader@gmail.com> * plugin/hosts: remove unused lookupStaticHost Signed-off-by: Amirhossein Ebrahimzade <amirhossein.e@smartech.ir> --------- Signed-off-by: youknowforsearch <amirhebrahimzader@gmail.com> Signed-off-by: Amirhossein Ebrahimzade <amirhossein.e@smartech.ir> Co-authored-by: Amirhossein Ebrahimzade <amirhossein.e@smartech.ir>
59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package hosts
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestReplaceWithAsteriskLabel(t *testing.T) {
|
|
tests := []struct {
|
|
in, out string
|
|
}{
|
|
{".", ""},
|
|
{"example.com.", "*.com."},
|
|
{"foo.example.com.", "*.example.com."},
|
|
{"bar.intern.example.com.", "*.intern.example.com."},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
got := replaceWithAsteriskLabel(tc.in)
|
|
if got != tc.out {
|
|
t.Errorf("replaceWithAsteriskLabel(%q) = %q, want %q", tc.in, got, tc.out)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestReplaceWithAsteriskLabelApex(t *testing.T) {
|
|
// Apex names produce a *.parent pattern but must not match *.zone wildcards.
|
|
if got := replaceWithAsteriskLabel("example.com."); got != "*.com." {
|
|
t.Fatalf("replaceWithAsteriskLabel(example.com.) = %q, want *.com.", got)
|
|
}
|
|
}
|
|
|
|
func TestLookupWildcardHost(t *testing.T) {
|
|
const hosts = `
|
|
127.0.0.53 *.example.org
|
|
127.0.1.52 *.intern.example.org
|
|
127.0.0.54 foo.example.org
|
|
192.168.33.10 *.example.com
|
|
192.168.33.11 a.example.com
|
|
192.168.33.12 b.example.com
|
|
`
|
|
|
|
h := testHostsfile(hosts)
|
|
|
|
tests := []staticHostEntry{
|
|
{"foo.example.org.", []string{"127.0.0.54"}, []string{}},
|
|
{"bar.example.org.", []string{"127.0.0.53"}, []string{}},
|
|
{"bar.intern.example.org.", []string{"127.0.1.52"}, []string{}},
|
|
{"a.example.com.", []string{"192.168.33.11"}, []string{}},
|
|
{"b.example.com.", []string{"192.168.33.12"}, []string{}},
|
|
{"c.example.com.", []string{"192.168.33.10"}, []string{}},
|
|
{"example.com.", []string{}, []string{}},
|
|
{"deep.foo.example.org.", []string{}, []string{}},
|
|
}
|
|
|
|
for _, ent := range tests {
|
|
testStaticHost(t, ent, h)
|
|
}
|
|
}
|