Browse Source

DNS: refine code (#1193)

Loyalsoldier 4 years ago
parent
commit
a783cd5f08
2 changed files with 6 additions and 6 deletions
  1. 4 4
      app/dns/dns.go
  2. 2 2
      app/dns/nameserver.go

+ 4 - 4
app/dns/dns.go

@@ -32,7 +32,7 @@ type DNS struct {
 	clients         []*Client
 	ctx             context.Context
 	domainMatcher   strmatcher.IndexMatcher
-	matcherInfos    []DomainMatcherInfo
+	matcherInfos    []*DomainMatcherInfo
 }
 
 // DomainMatcherInfo contains information attached to index returned by Server.domainMatcher
@@ -92,7 +92,7 @@ func New(ctx context.Context, config *Config) (*DNS, error) {
 	}
 
 	// MatcherInfos is ensured to cover the maximum index domainMatcher could return, where matcher's index starts from 1
-	matcherInfos := make([]DomainMatcherInfo, domainRuleCount+1)
+	matcherInfos := make([]*DomainMatcherInfo, domainRuleCount+1)
 	domainMatcher := &strmatcher.MatcherGroup{}
 	geoipContainer := router.GeoIPMatcherContainer{}
 
@@ -107,9 +107,9 @@ func New(ctx context.Context, config *Config) (*DNS, error) {
 
 	for _, ns := range config.NameServer {
 		clientIdx := len(clients)
-		updateDomain := func(domainRule strmatcher.Matcher, originalRuleIdx int, matcherInfos []DomainMatcherInfo) error {
+		updateDomain := func(domainRule strmatcher.Matcher, originalRuleIdx int, matcherInfos []*DomainMatcherInfo) error {
 			midx := domainMatcher.Add(domainRule)
-			matcherInfos[midx] = DomainMatcherInfo{
+			matcherInfos[midx] = &DomainMatcherInfo{
 				clientIdx:     uint16(clientIdx),
 				domainRuleIdx: uint16(originalRuleIdx),
 			}

+ 2 - 2
app/dns/nameserver.go

@@ -70,7 +70,7 @@ func NewServer(dest net.Destination, dispatcher routing.Dispatcher) (Server, err
 }
 
 // NewClient creates a DNS client managing a name server with client IP, domain rules and expected IPs.
-func NewClient(ctx context.Context, ns *NameServer, clientIP net.IP, container router.GeoIPMatcherContainer, matcherInfos *[]DomainMatcherInfo, updateDomainRule func(strmatcher.Matcher, int, []DomainMatcherInfo) error) (*Client, error) {
+func NewClient(ctx context.Context, ns *NameServer, clientIP net.IP, container router.GeoIPMatcherContainer, matcherInfos *[]*DomainMatcherInfo, updateDomainRule func(strmatcher.Matcher, int, []*DomainMatcherInfo) error) (*Client, error) {
 	client := &Client{}
 
 	err := core.RequireFeatures(ctx, func(dispatcher routing.Dispatcher) error {
@@ -92,7 +92,7 @@ func NewClient(ctx context.Context, ns *NameServer, clientIP net.IP, container r
 			// https://github.com/v2fly/v2ray-core/issues/529
 			// https://github.com/v2fly/v2ray-core/issues/719
 			for i := 0; i < len(localTLDsAndDotlessDomains); i++ {
-				*matcherInfos = append(*matcherInfos, DomainMatcherInfo{
+				*matcherInfos = append(*matcherInfos, &DomainMatcherInfo{
 					clientIdx:     uint16(0),
 					domainRuleIdx: uint16(0),
 				})