|
|
|
@@ -37,31 +37,31 @@ func TestNewRule(t *testing.T) {
|
|
|
|
{[]string{"name"}, true, nil},
|
|
|
|
{[]string{"name"}, true, nil},
|
|
|
|
{[]string{"name", "a.com"}, true, nil},
|
|
|
|
{[]string{"name", "a.com"}, true, nil},
|
|
|
|
{[]string{"name", "a.com", "b.com", "c.com"}, true, nil},
|
|
|
|
{[]string{"name", "a.com", "b.com", "c.com"}, true, nil},
|
|
|
|
{[]string{"name", "a.com", "b.com"}, false, reflect.TypeOf(&exactNameRule{})},
|
|
|
|
{[]string{"name", "a.com", "b.com"}, false, reflect.TypeFor[*exactNameRule]()},
|
|
|
|
{[]string{"name", "exact", "a.com", "b.com"}, false, reflect.TypeOf(&exactNameRule{})},
|
|
|
|
{[]string{"name", "exact", "a.com", "b.com"}, false, reflect.TypeFor[*exactNameRule]()},
|
|
|
|
{[]string{"name", "prefix", "a.com", "b.com"}, false, reflect.TypeOf(&prefixNameRule{})},
|
|
|
|
{[]string{"name", "prefix", "a.com", "b.com"}, false, reflect.TypeFor[*prefixNameRule]()},
|
|
|
|
{[]string{"name", "suffix", "a.com", "b.com"}, false, reflect.TypeOf(&suffixNameRule{})},
|
|
|
|
{[]string{"name", "suffix", "a.com", "b.com"}, false, reflect.TypeFor[*suffixNameRule]()},
|
|
|
|
{[]string{"name", "substring", "a.com", "b.com"}, false, reflect.TypeOf(&substringNameRule{})},
|
|
|
|
{[]string{"name", "substring", "a.com", "b.com"}, false, reflect.TypeFor[*substringNameRule]()},
|
|
|
|
{[]string{"name", "regex", "([a])\\.com", "new-{1}.com"}, false, reflect.TypeOf(®exNameRule{})},
|
|
|
|
{[]string{"name", "regex", "([a])\\.com", "new-{1}.com"}, false, reflect.TypeFor[*regexNameRule]()},
|
|
|
|
{[]string{"name", "regex", "([a]\\.com", "new-{1}.com"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "([a]\\.com", "new-{1}.com"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(dns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "(core)\\.(dns)\\.(rocks)", "{2}.{1}.{3}"}, false, reflect.TypeOf(®exNameRule{})},
|
|
|
|
{[]string{"name", "regex", "(dns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "(core)\\.(dns)\\.(rocks)", "{2}.{1}.{3}"}, false, reflect.TypeFor[*regexNameRule]()},
|
|
|
|
{[]string{"name", "regex", "(adns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "(core)\\.(adns)\\.(rocks)", "{2}.{1}.{3}", "too.long", "way.too.long"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(adns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "(core)\\.(adns)\\.(rocks)", "{2}.{1}.{3}", "too.long", "way.too.long"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(bdns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "NoAnswer", "name", "(core)\\.(bdns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(bdns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "NoAnswer", "name", "(core)\\.(bdns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(cdns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "ttl", "(core)\\.(cdns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(cdns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "ttl", "(core)\\.(cdns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(ddns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "\xecore\\.(ddns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "(ddns)\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "\xecore\\.(ddns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "\xedns\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "(core)\\.(edns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "regex", "\xedns\\.(core)\\.(rocks)", "{2}.{1}.{3}", "answer", "name", "(core)\\.(edns)\\.(rocks)", "{2}.{1}.{3}"}, true, nil},
|
|
|
|
{[]string{"name", "substring", "fcore.dns.rocks", "dns.fcore.rocks", "answer", "name", "(fcore)\\.(dns)\\.(rocks)", "{2}.{1}.{3}"}, false, reflect.TypeOf(&substringNameRule{})},
|
|
|
|
{[]string{"name", "substring", "fcore.dns.rocks", "dns.fcore.rocks", "answer", "name", "(fcore)\\.(dns)\\.(rocks)", "{2}.{1}.{3}"}, false, reflect.TypeFor[*substringNameRule]()},
|
|
|
|
{[]string{"name", "substring", "a.com", "b.com", "c.com"}, true, nil},
|
|
|
|
{[]string{"name", "substring", "a.com", "b.com", "c.com"}, true, nil},
|
|
|
|
{[]string{"type"}, true, nil},
|
|
|
|
{[]string{"type"}, true, nil},
|
|
|
|
{[]string{"type", "a"}, true, nil},
|
|
|
|
{[]string{"type", "a"}, true, nil},
|
|
|
|
{[]string{"type", "any", "a", "a"}, true, nil},
|
|
|
|
{[]string{"type", "any", "a", "a"}, true, nil},
|
|
|
|
{[]string{"type", "any", "a"}, false, reflect.TypeOf(&typeRule{})},
|
|
|
|
{[]string{"type", "any", "a"}, false, reflect.TypeFor[*typeRule]()},
|
|
|
|
{[]string{"type", "XY", "WV"}, true, nil},
|
|
|
|
{[]string{"type", "XY", "WV"}, true, nil},
|
|
|
|
{[]string{"type", "ANY", "WV"}, true, nil},
|
|
|
|
{[]string{"type", "ANY", "WV"}, true, nil},
|
|
|
|
{[]string{"class"}, true, nil},
|
|
|
|
{[]string{"class"}, true, nil},
|
|
|
|
{[]string{"class", "IN"}, true, nil},
|
|
|
|
{[]string{"class", "IN"}, true, nil},
|
|
|
|
{[]string{"class", "ch", "in", "in"}, true, nil},
|
|
|
|
{[]string{"class", "ch", "in", "in"}, true, nil},
|
|
|
|
{[]string{"class", "ch", "in"}, false, reflect.TypeOf(&classRule{})},
|
|
|
|
{[]string{"class", "ch", "in"}, false, reflect.TypeFor[*classRule]()},
|
|
|
|
{[]string{"class", "XY", "WV"}, true, nil},
|
|
|
|
{[]string{"class", "XY", "WV"}, true, nil},
|
|
|
|
{[]string{"class", "IN", "WV"}, true, nil},
|
|
|
|
{[]string{"class", "IN", "WV"}, true, nil},
|
|
|
|
{[]string{"edns0"}, true, nil},
|
|
|
|
{[]string{"edns0"}, true, nil},
|
|
|
|
@@ -71,109 +71,109 @@ func TestNewRule(t *testing.T) {
|
|
|
|
{[]string{"edns0", "local", "set"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "invalid-uint", "abcdefg"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "invalid-uint", "abcdefg"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "65518", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "65518", "abcdefg"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "abcdefg", "revert"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "abcdefg", "revert"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "abcdefg"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "abcdefg", "revert"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "abcdefg", "revert"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "abcdefg"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "abcdefg", "revert"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "abcdefg", "revert"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "unset", "0xffee"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "unset", "0xffee"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "unset", "0xffee", "abcdefg"}, true, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "unset", "0xffee", "abcdefg"}, true, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "unset", "0xffee", "revert"}, true, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"edns0", "local", "unset", "0xffee", "revert"}, true, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"edns0", "local", "foo", "0xffee", "abcdefg"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "foo", "0xffee", "abcdefg"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "0xabcdefg"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "0xabcdefg"}, true, nil},
|
|
|
|
{[]string{"edns0", "nsid", "set", "junk"}, true, nil},
|
|
|
|
{[]string{"edns0", "nsid", "set", "junk"}, true, nil},
|
|
|
|
{[]string{"edns0", "nsid", "set"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "set"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "set", "revert"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "set", "revert"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "append"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "append"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "append", "revert"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "append", "revert"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "replace"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "replace"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "replace", "revert"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "replace", "revert"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "unset"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "unset"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "unset", "revert"}, true, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"edns0", "nsid", "unset", "revert"}, true, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"edns0", "nsid", "foo"}, true, nil},
|
|
|
|
{[]string{"edns0", "nsid", "foo"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "invalid-uint", "{qname}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "invalid-uint", "{qname}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{dummy}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{dummy}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{server_port}", "revert"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "set", "0xffee", "{server_port}", "revert"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{dummy}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{dummy}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{qname}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{qtype}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{client_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{client_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{protocol}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{server_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{server_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{server_port}", "revert"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "append", "0xffee", "{server_port}", "revert"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{dummy}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{dummy}"}, true, nil},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{qname}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{qtype}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{client_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{client_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{protocol}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{server_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{server_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{server_port}", "revert"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"edns0", "local", "replace", "0xffee", "{server_port}", "revert"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "set", "-1", "56"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "-1", "56"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "-56"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "-56"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "33", "56"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "33", "56"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "129"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "129"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "56", "revert"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "set", "24", "56", "revert"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "append", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "append", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "append", "24", "56", "72"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "append", "24", "56", "72"}, true, nil},
|
|
|
|
{[]string{"edns0", "subnet", "append", "24", "56", "revert"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "append", "24", "56", "revert"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "replace", "24", "56", "revert"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "replace", "24", "56", "revert"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "unset"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "unset"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "unset", "24", "56"}, true, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "unset", "24", "56"}, true, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"edns0", "subnet", "unset", "revert"}, true, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"edns0", "subnet", "unset", "revert"}, true, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"unknown-action", "name", "a.com", "b.com"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "name", "a.com", "b.com"}, true, nil},
|
|
|
|
{[]string{"stop", "name", "a.com", "b.com"}, false, reflect.TypeOf(&exactNameRule{})},
|
|
|
|
{[]string{"stop", "name", "a.com", "b.com"}, false, reflect.TypeFor[*exactNameRule]()},
|
|
|
|
{[]string{"continue", "name", "a.com", "b.com"}, false, reflect.TypeOf(&exactNameRule{})},
|
|
|
|
{[]string{"continue", "name", "a.com", "b.com"}, false, reflect.TypeFor[*exactNameRule]()},
|
|
|
|
{[]string{"unknown-action", "type", "any", "a"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "type", "any", "a"}, true, nil},
|
|
|
|
{[]string{"stop", "type", "any", "a"}, false, reflect.TypeOf(&typeRule{})},
|
|
|
|
{[]string{"stop", "type", "any", "a"}, false, reflect.TypeFor[*typeRule]()},
|
|
|
|
{[]string{"continue", "type", "any", "a"}, false, reflect.TypeOf(&typeRule{})},
|
|
|
|
{[]string{"continue", "type", "any", "a"}, false, reflect.TypeFor[*typeRule]()},
|
|
|
|
{[]string{"unknown-action", "class", "ch", "in"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "class", "ch", "in"}, true, nil},
|
|
|
|
{[]string{"stop", "class", "ch", "in"}, false, reflect.TypeOf(&classRule{})},
|
|
|
|
{[]string{"stop", "class", "ch", "in"}, false, reflect.TypeFor[*classRule]()},
|
|
|
|
{[]string{"continue", "class", "ch", "in"}, false, reflect.TypeOf(&classRule{})},
|
|
|
|
{[]string{"continue", "class", "ch", "in"}, false, reflect.TypeFor[*classRule]()},
|
|
|
|
{[]string{"unknown-action", "edns0", "local", "set", "0xffee", "abcedef"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "edns0", "local", "set", "0xffee", "abcedef"}, true, nil},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeOf(&edns0LocalRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "abcdefg"}, false, reflect.TypeFor[*edns0LocalRule]()},
|
|
|
|
{[]string{"unknown-action", "edns0", "nsid", "set"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "edns0", "nsid", "set"}, true, nil},
|
|
|
|
{[]string{"stop", "edns0", "nsid", "set"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"stop", "edns0", "nsid", "set"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"continue", "edns0", "nsid", "set"}, false, reflect.TypeOf(&edns0NsidRule{})},
|
|
|
|
{[]string{"continue", "edns0", "nsid", "set"}, false, reflect.TypeFor[*edns0NsidRule]()},
|
|
|
|
{[]string{"unknown-action", "edns0", "local", "set", "0xffee", "{qname}"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "edns0", "local", "set", "0xffee", "{qname}"}, true, nil},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"stop", "edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{qname}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{qtype}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{client_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{client_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{protocol}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{server_ip}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeOf(&edns0VariableRule{})},
|
|
|
|
{[]string{"continue", "edns0", "local", "set", "0xffee", "{server_port}"}, false, reflect.TypeFor[*edns0VariableRule]()},
|
|
|
|
{[]string{"unknown-action", "edns0", "subnet", "set", "24", "64"}, true, nil},
|
|
|
|
{[]string{"unknown-action", "edns0", "subnet", "set", "24", "64"}, true, nil},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "set", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "set", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "append", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "append", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "unset"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"stop", "edns0", "subnet", "unset"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "set", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "set", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "append", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "append", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "replace", "24", "56"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "unset"}, false, reflect.TypeOf(&edns0SubnetRule{})},
|
|
|
|
{[]string{"continue", "edns0", "subnet", "unset"}, false, reflect.TypeFor[*edns0SubnetRule]()},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for i, tc := range tests {
|
|
|
|
for i, tc := range tests {
|
|
|
|
|