mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-07-06 19:58:47 +00:00
Sniffing: domainsExcluded supports "geosite:" (#5927)
https://github.com/XTLS/Xray-core/pull/5927#issuecomment-4238238050 https://github.com/XTLS/Xray-core/pull/5927#issuecomment-4238119874
This commit is contained in:
@@ -158,6 +158,49 @@ func TestXrayConfig(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestSniffingConfig_Build(t *testing.T) {
|
||||
config := &SniffingConfig{
|
||||
Enabled: true,
|
||||
DestOverride: StringList{"http", "tls"},
|
||||
DomainsExcluded: StringList{"full:api.example.com", "domain:blocked.example", "regexp:^test[0-9]+\\.internal$"},
|
||||
MetadataOnly: true,
|
||||
RouteOnly: true,
|
||||
}
|
||||
|
||||
built, err := config.Build()
|
||||
if err != nil {
|
||||
t.Fatalf("SniffingConfig.Build() failed: %v", err)
|
||||
}
|
||||
|
||||
if !built.Enabled || !built.MetadataOnly || !built.RouteOnly {
|
||||
t.Fatalf("SniffingConfig.Build() lost sniffing flags: %+v", built)
|
||||
}
|
||||
if len(built.DestinationOverride) != 2 {
|
||||
t.Fatalf("SniffingConfig.Build() lost destination overrides: %+v", built.DestinationOverride)
|
||||
}
|
||||
if len(built.DomainsExcluded) != 3 {
|
||||
t.Fatalf("SniffingConfig.Build() produced %d domain rules", len(built.DomainsExcluded))
|
||||
}
|
||||
|
||||
want := []struct {
|
||||
ruleType geodata.Domain_Type
|
||||
value string
|
||||
}{
|
||||
{ruleType: geodata.Domain_Full, value: "api.example.com"},
|
||||
{ruleType: geodata.Domain_Domain, value: "blocked.example"},
|
||||
{ruleType: geodata.Domain_Regex, value: "^test[0-9]+\\.internal$"},
|
||||
}
|
||||
for i, tc := range want {
|
||||
rule := built.DomainsExcluded[i].GetCustom()
|
||||
if rule == nil {
|
||||
t.Fatalf("SniffingConfig.Build() produced a non-custom rule at index %d", i)
|
||||
}
|
||||
if rule.Type != tc.ruleType || rule.Value != tc.value {
|
||||
t.Fatalf("SniffingConfig.Build() produced wrong rule at index %d: got (%v, %q), want (%v, %q)", i, rule.Type, rule.Value, tc.ruleType, tc.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMuxConfig_Build(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
|
||||
Reference in New Issue
Block a user