1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2026-06-01 08:49:11 -04:00

prototype for high performance geoip matcher

This commit is contained in:
Darien Raymond
2018-11-01 09:10:41 +01:00
parent ee74256aac
commit c73e899f54
8 changed files with 581 additions and 58 deletions

View File

@@ -111,7 +111,13 @@ func (rr *RoutingRule) BuildCondition() (Condition, error) {
conds.Add(NewNetworkMatcher(rr.NetworkList))
}
if len(rr.Cidr) > 0 {
if len(rr.Geoip) > 0 {
cond, err := NewMultiGeoIPMatcher(rr.Geoip, false)
if err != nil {
return nil, err
}
conds.Add(cond)
} else if len(rr.Cidr) > 0 {
cond, err := cidrToCondition(rr.Cidr, false)
if err != nil {
return nil, err
@@ -119,7 +125,13 @@ func (rr *RoutingRule) BuildCondition() (Condition, error) {
conds.Add(cond)
}
if len(rr.SourceCidr) > 0 {
if len(rr.SourceGeoip) > 0 {
cond, err := NewMultiGeoIPMatcher(rr.SourceGeoip, true)
if err != nil {
return nil, err
}
conds.Add(cond)
} else if len(rr.SourceCidr) > 0 {
cond, err := cidrToCondition(rr.SourceCidr, true)
if err != nil {
return nil, err