mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 17:35:40 +08:00
rule: compare domains as lowercase
This commit is contained in:
parent
6909a4a372
commit
e3b716206a
8
rule.go
8
rule.go
@ -37,7 +37,7 @@ func NewRuleDialer(rules []*RuleConf, gDialer Dialer) *RuleDialer {
|
|||||||
sDialer := NewStrategyDialer(r.Strategy, fwdrs, r.CheckWebSite, r.CheckDuration)
|
sDialer := NewStrategyDialer(r.Strategy, fwdrs, r.CheckWebSite, r.CheckDuration)
|
||||||
|
|
||||||
for _, domain := range r.Domain {
|
for _, domain := range r.Domain {
|
||||||
rd.domainMap.Store(domain, sDialer)
|
rd.domainMap.Store(strings.ToLower(domain), sDialer)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, ip := range r.IP {
|
for _, ip := range r.IP {
|
||||||
@ -56,12 +56,10 @@ func NewRuleDialer(rules []*RuleConf, gDialer Dialer) *RuleDialer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Addr returns RuleDialer's address, always be "RULES"
|
// Addr returns RuleDialer's address, always be "RULES"
|
||||||
// func (rd *RuleDialer) Addr() string { return "RULES" }
|
func (rd *RuleDialer) Addr() string { return "RULE DIALER, DEFAULT: " + rd.gDialer.Addr() }
|
||||||
func (rd *RuleDialer) Addr() string { return rd.gDialer.Addr() }
|
|
||||||
|
|
||||||
// NextDialer return next dialer according to rule
|
// NextDialer return next dialer according to rule
|
||||||
func (rd *RuleDialer) NextDialer(dstAddr string) Dialer {
|
func (rd *RuleDialer) NextDialer(dstAddr string) Dialer {
|
||||||
|
|
||||||
host, _, err := net.SplitHostPort(dstAddr)
|
host, _, err := net.SplitHostPort(dstAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// TODO: check here
|
// TODO: check here
|
||||||
@ -124,7 +122,7 @@ 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-- {
|
||||||
pDomain := strings.Join(domainParts[i:length], ".")
|
pDomain := strings.ToLower(strings.Join(domainParts[i:length], "."))
|
||||||
|
|
||||||
// find in domainMap
|
// find in domainMap
|
||||||
if dialer, ok := rd.domainMap.Load(pDomain); ok {
|
if dialer, ok := rd.domainMap.Load(pDomain); ok {
|
||||||
|
@ -668,7 +668,6 @@ func (pc *Socks5PktConn) WriteTo(b []byte, addr net.Addr) (int, error) {
|
|||||||
return pc.PacketConn.WriteTo(b, addr)
|
return pc.PacketConn.WriteTo(b, addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// buf := append([]byte{0, 0, 0}, b[:]...)
|
|
||||||
buf := append([]byte{0, 0, 0}, pc.tgtAddr...)
|
buf := append([]byte{0, 0, 0}, pc.tgtAddr...)
|
||||||
buf = append(buf, b[:]...)
|
buf = append(buf, b[:]...)
|
||||||
return pc.PacketConn.WriteTo(buf, pc.writeAddr)
|
return pc.PacketConn.WriteTo(buf, pc.writeAddr)
|
||||||
|
Loading…
Reference in New Issue
Block a user