mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-02-20 23:47:21 -05:00
29 lines
732 B
Go
29 lines
732 B
Go
package geodata
|
|
|
|
import (
|
|
"runtime"
|
|
|
|
"github.com/v2fly/v2ray-core/v4/app/router"
|
|
)
|
|
|
|
var geoipcache GeoIPCache = make(map[string]*router.GeoIP)
|
|
var geositecache GeoSiteCache = make(map[string]*router.GeoSite)
|
|
|
|
func LoadIP(filename, country string) ([]*router.CIDR, error) {
|
|
geoip, err := geoipcache.Unmarshal(filename, country)
|
|
if err != nil {
|
|
return nil, newError("failed to decode geodata file: ", filename).Base(err)
|
|
}
|
|
runtime.GC()
|
|
return geoip.Cidr, nil
|
|
}
|
|
|
|
func LoadSite(filename, list string) ([]*router.Domain, error) {
|
|
geosite, err := geositecache.Unmarshal(filename, list)
|
|
if err != nil {
|
|
return nil, newError("failed to decode geodata file: ", filename).Base(err)
|
|
}
|
|
runtime.GC()
|
|
return geosite.Domain, nil
|
|
}
|