load.go 732 B

12345678910111213141516171819202122232425262728
  1. package geodata
  2. import (
  3. "runtime"
  4. "github.com/v2fly/v2ray-core/v4/app/router"
  5. )
  6. var geoipcache GeoIPCache = make(map[string]*router.GeoIP)
  7. var geositecache GeoSiteCache = make(map[string]*router.GeoSite)
  8. func LoadIP(filename, country string) ([]*router.CIDR, error) {
  9. geoip, err := geoipcache.Unmarshal(filename, country)
  10. if err != nil {
  11. return nil, newError("failed to decode geodata file: ", filename).Base(err)
  12. }
  13. runtime.GC()
  14. return geoip.Cidr, nil
  15. }
  16. func LoadSite(filename, list string) ([]*router.Domain, error) {
  17. geosite, err := geositecache.Unmarshal(filename, list)
  18. if err != nil {
  19. return nil, newError("failed to decode geodata file: ", filename).Base(err)
  20. }
  21. runtime.GC()
  22. return geosite.Domain, nil
  23. }