mirror of
https://github.com/nadoo/glider.git
synced 2025-04-21 19:52:07 +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