mirror of
				https://github.com/nadoo/glider.git
				synced 2025-11-04 07:42:38 +08:00 
			
		
		
		
	rule: change receiver name
This commit is contained in:
		
							parent
							
								
									54e3f2ac6b
								
							
						
					
					
						commit
						65e3940bd6
					
				
							
								
								
									
										1
									
								
								mixed.go
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								mixed.go
									
									
									
									
									
								
							@ -60,6 +60,7 @@ func (p *MixedProxy) ListenAndServe() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Serve .
 | 
				
			||||||
func (p *MixedProxy) Serve(conn net.Conn) {
 | 
					func (p *MixedProxy) Serve(conn net.Conn) {
 | 
				
			||||||
	defer conn.Close()
 | 
						defer conn.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								rule.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								rule.go
									
									
									
									
									
								
							@ -59,26 +59,26 @@ func NewRuleDialer(rules []*RuleConf, gDialer Dialer) *RuleDialer {
 | 
				
			|||||||
func (rd *RuleDialer) Addr() string { return "RULES" }
 | 
					func (rd *RuleDialer) Addr() string { return "RULES" }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NextDialer return next dialer according to rule
 | 
					// NextDialer return next dialer according to rule
 | 
				
			||||||
func (p *RuleDialer) NextDialer(dstAddr string) Dialer {
 | 
					func (rd *RuleDialer) NextDialer(dstAddr string) Dialer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// TODO: change to index finders
 | 
						// TODO: change to index finders
 | 
				
			||||||
	host, _, err := net.SplitHostPort(dstAddr)
 | 
						host, _, err := net.SplitHostPort(dstAddr)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		// TODO: check here
 | 
							// TODO: check here
 | 
				
			||||||
		// logf("proxy-rule SplitHostPort ERROR: %s", err)
 | 
							// logf("proxy-rule SplitHostPort ERROR: %s", err)
 | 
				
			||||||
		return p.gDialer
 | 
							return rd.gDialer
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 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 := p.ipMap.Load(ip.String()); ok {
 | 
							if d, ok := rd.ipMap.Load(ip.String()); ok {
 | 
				
			||||||
			return d.(Dialer)
 | 
								return d.(Dialer)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		var ret Dialer
 | 
							var ret Dialer
 | 
				
			||||||
		// check cidr
 | 
							// check cidr
 | 
				
			||||||
		p.cidrMap.Range(func(key, value interface{}) bool {
 | 
							rd.cidrMap.Range(func(key, value interface{}) bool {
 | 
				
			||||||
			cidr := key.(*net.IPNet)
 | 
								cidr := key.(*net.IPNet)
 | 
				
			||||||
			if cidr.Contains(ip) {
 | 
								if cidr.Contains(ip) {
 | 
				
			||||||
				ret = value.(Dialer)
 | 
									ret = value.(Dialer)
 | 
				
			||||||
@ -100,12 +100,12 @@ func (p *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 := p.domainMap.Load(domain); ok {
 | 
							if d, ok := rd.domainMap.Load(domain); ok {
 | 
				
			||||||
			return d.(Dialer)
 | 
								return d.(Dialer)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return p.gDialer
 | 
						return rd.gDialer
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Dial dials to targer addr and return a conn
 | 
					// Dial dials to targer addr and return a conn
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user