mirror of
				https://github.com/nadoo/glider.git
				synced 2025-11-04 07:42:38 +08:00 
			
		
		
		
	rule: optimized log format
This commit is contained in:
		
							parent
							
								
									9354caac5c
								
							
						
					
					
						commit
						5f661de379
					
				
							
								
								
									
										24
									
								
								rule.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								rule.go
									
									
									
									
									
								
							@ -34,19 +34,19 @@ func NewRuleDialer(rules []*RuleConf, gDialer Dialer) *RuleDialer {
 | 
				
			|||||||
			forwarders = append(forwarders, forward)
 | 
								forwarders = append(forwarders, forward)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		sd := NewStrategyDialer(r.Strategy, forwarders, r.CheckWebSite, r.CheckDuration)
 | 
							sDialer := NewStrategyDialer(r.Strategy, forwarders, r.CheckWebSite, r.CheckDuration)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for _, domain := range r.Domain {
 | 
							for _, domain := range r.Domain {
 | 
				
			||||||
			rd.domainMap.Store(domain, sd)
 | 
								rd.domainMap.Store(domain, sDialer)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for _, ip := range r.IP {
 | 
							for _, ip := range r.IP {
 | 
				
			||||||
			rd.ipMap.Store(ip, sd)
 | 
								rd.ipMap.Store(ip, sDialer)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for _, s := range r.CIDR {
 | 
							for _, s := range r.CIDR {
 | 
				
			||||||
			if _, cidr, err := net.ParseCIDR(s); err == nil {
 | 
								if _, cidr, err := net.ParseCIDR(s); err == nil {
 | 
				
			||||||
				rd.cidrMap.Store(cidr, sd)
 | 
									rd.cidrMap.Store(cidr, sDialer)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -71,8 +71,8 @@ func (rd *RuleDialer) NextDialer(dstAddr string) Dialer {
 | 
				
			|||||||
	// find ip
 | 
						// find ip
 | 
				
			||||||
	if ip := net.ParseIP(host); ip != nil {
 | 
						if ip := net.ParseIP(host); ip != nil {
 | 
				
			||||||
		// check ip
 | 
							// check ip
 | 
				
			||||||
		if d, ok := rd.ipMap.Load(ip.String()); ok {
 | 
							if dialer, ok := rd.ipMap.Load(ip.String()); ok {
 | 
				
			||||||
			return d.(Dialer)
 | 
								return dialer.(Dialer)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		var ret Dialer
 | 
							var ret Dialer
 | 
				
			||||||
@ -99,8 +99,8 @@ func (rd *RuleDialer) NextDialer(dstAddr string) Dialer {
 | 
				
			|||||||
		domain := strings.Join(domainParts[i:length], ".")
 | 
							domain := strings.Join(domainParts[i:length], ".")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// find in domainMap
 | 
							// find in domainMap
 | 
				
			||||||
		if d, ok := rd.domainMap.Load(domain); ok {
 | 
							if dialer, ok := rd.domainMap.Load(domain); ok {
 | 
				
			||||||
			return d.(Dialer)
 | 
								return dialer.(Dialer)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -118,12 +118,12 @@ func (rd *RuleDialer) AddDomainIP(domain, ip string) error {
 | 
				
			|||||||
		domainParts := strings.Split(domain, ".")
 | 
							domainParts := strings.Split(domain, ".")
 | 
				
			||||||
		length := len(domainParts)
 | 
							length := len(domainParts)
 | 
				
			||||||
		for i := length - 2; i >= 0; i-- {
 | 
							for i := length - 2; i >= 0; i-- {
 | 
				
			||||||
			domain := strings.Join(domainParts[i:length], ".")
 | 
								pDomain := strings.Join(domainParts[i:length], ".")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// find in domainMap
 | 
								// find in domainMap
 | 
				
			||||||
			if d, ok := rd.domainMap.Load(domain); ok {
 | 
								if dialer, ok := rd.domainMap.Load(pDomain); ok {
 | 
				
			||||||
				rd.ipMap.Store(ip, d)
 | 
									rd.ipMap.Store(ip, dialer)
 | 
				
			||||||
				logf("rule: add domain: %s, ip: %s\n", domain, ip)
 | 
									logf("rule add `ip=%s`, based on rule: `domain=%s`, domain/ip: %s/%s\n", ip, pDomain, domain, ip)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user