mirror of https://github.com/XTLS/Xray-core
DNS: Ensure order for DNS server match
parent
2cba2c4d59
commit
e07672037f
|
@ -4,6 +4,7 @@ package dns
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
@ -250,7 +251,11 @@ func (s *DNS) sortClients(domain string) []*Client {
|
||||||
|
|
||||||
// Priority domain matching
|
// Priority domain matching
|
||||||
hasMatch := false
|
hasMatch := false
|
||||||
for _, match := range s.domainMatcher.Match(domain) {
|
MatchSlice := s.domainMatcher.Match(domain)
|
||||||
|
sort.Slice(MatchSlice, func(i, j int) bool {
|
||||||
|
return MatchSlice[i] < MatchSlice[j]
|
||||||
|
})
|
||||||
|
for _, match := range MatchSlice {
|
||||||
info := s.matcherInfos[match]
|
info := s.matcherInfos[match]
|
||||||
client := s.clients[info.clientIdx]
|
client := s.clients[info.clientIdx]
|
||||||
domainRule := client.domains[info.domainRuleIdx]
|
domainRule := client.domains[info.domainRuleIdx]
|
||||||
|
|
Loading…
Reference in New Issue