mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-12-21 17:46:58 -05:00
refine
This commit is contained in:
parent
3ba9a5b4f5
commit
40f8e82204
@ -13,18 +13,22 @@ import (
|
|||||||
"github.com/v2fly/v2ray-core/v4/app/router"
|
"github.com/v2fly/v2ray-core/v4/app/router"
|
||||||
"github.com/v2fly/v2ray-core/v4/common"
|
"github.com/v2fly/v2ray-core/v4/common"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/net"
|
"github.com/v2fly/v2ray-core/v4/common/net"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform"
|
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
const (
|
||||||
|
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
||||||
|
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
||||||
|
)
|
||||||
|
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
common.Must(err)
|
common.Must(err)
|
||||||
|
|
||||||
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
||||||
os.Setenv("v2ray.location.asset", tempPath)
|
geoipPath := filepath.Join(tempPath, "geoip.dat")
|
||||||
|
|
||||||
geoipPath := platform.GetAssetLocation("geoip.dat")
|
os.Setenv("v2ray.location.asset", tempPath)
|
||||||
|
|
||||||
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
||||||
common.Must(os.MkdirAll(tempPath, 0755))
|
common.Must(os.MkdirAll(tempPath, 0755))
|
||||||
|
@ -14,7 +14,6 @@ import (
|
|||||||
"github.com/v2fly/v2ray-core/v4/app/router"
|
"github.com/v2fly/v2ray-core/v4/app/router"
|
||||||
"github.com/v2fly/v2ray-core/v4/common"
|
"github.com/v2fly/v2ray-core/v4/common"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/net"
|
"github.com/v2fly/v2ray-core/v4/common/net"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform"
|
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/protocol"
|
"github.com/v2fly/v2ray-core/v4/common/protocol"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/protocol/http"
|
"github.com/v2fly/v2ray-core/v4/common/protocol/http"
|
||||||
@ -24,14 +23,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
const (
|
||||||
|
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
||||||
|
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
||||||
|
)
|
||||||
|
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
common.Must(err)
|
common.Must(err)
|
||||||
|
|
||||||
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
||||||
os.Setenv("v2ray.location.asset", tempPath)
|
geoipPath := filepath.Join(tempPath, "geoip.dat")
|
||||||
|
geositePath := filepath.Join(tempPath, "geosite.dat")
|
||||||
|
|
||||||
geoipPath := platform.GetAssetLocation("geoip.dat")
|
os.Setenv("v2ray.location.asset", tempPath)
|
||||||
geositePath := platform.GetAssetLocation("geosite.dat")
|
|
||||||
|
|
||||||
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
||||||
common.Must(os.MkdirAll(tempPath, 0755))
|
common.Must(os.MkdirAll(tempPath, 0755))
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
package router_test
|
|
||||||
|
|
||||||
const (
|
|
||||||
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
|
||||||
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
|
||||||
)
|
|
@ -1,6 +0,0 @@
|
|||||||
package conf_test
|
|
||||||
|
|
||||||
const (
|
|
||||||
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
|
||||||
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
|
||||||
)
|
|
@ -13,7 +13,6 @@ import (
|
|||||||
"github.com/v2fly/v2ray-core/v4/app/dns"
|
"github.com/v2fly/v2ray-core/v4/app/dns"
|
||||||
"github.com/v2fly/v2ray-core/v4/common"
|
"github.com/v2fly/v2ray-core/v4/common"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/net"
|
"github.com/v2fly/v2ray-core/v4/common/net"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform"
|
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
||||||
"github.com/v2fly/v2ray-core/v4/infra/conf"
|
"github.com/v2fly/v2ray-core/v4/infra/conf"
|
||||||
|
|
||||||
@ -21,14 +20,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
const (
|
||||||
|
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
||||||
|
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
||||||
|
)
|
||||||
|
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
common.Must(err)
|
common.Must(err)
|
||||||
|
|
||||||
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
||||||
os.Setenv("v2ray.location.asset", tempPath)
|
geoipPath := filepath.Join(tempPath, "geoip.dat")
|
||||||
|
geositePath := filepath.Join(tempPath, "geosite.dat")
|
||||||
|
|
||||||
geoipPath := platform.GetAssetLocation("geoip.dat")
|
os.Setenv("v2ray.location.asset", tempPath)
|
||||||
geositePath := platform.GetAssetLocation("geosite.dat")
|
|
||||||
|
|
||||||
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
||||||
common.Must(os.MkdirAll(tempPath, 0755))
|
common.Must(os.MkdirAll(tempPath, 0755))
|
||||||
|
@ -4,9 +4,9 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
"github.com/v2fly/v2ray-core/v4/app/router"
|
"github.com/v2fly/v2ray-core/v4/app/router"
|
||||||
"github.com/v2fly/v2ray-core/v4/common/platform"
|
"github.com/v2fly/v2ray-core/v4/common/platform"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
type GeoIPCache map[string]*router.GeoIP
|
type GeoIPCache map[string]*router.GeoIP
|
||||||
@ -31,7 +31,7 @@ func (g GeoIPCache) Set(key string, value *router.GeoIP) {
|
|||||||
|
|
||||||
func (g GeoIPCache) Unmarshal(filename, code string) (*router.GeoIP, error) {
|
func (g GeoIPCache) Unmarshal(filename, code string) (*router.GeoIP, error) {
|
||||||
asset := platform.GetAssetLocation(filename)
|
asset := platform.GetAssetLocation(filename)
|
||||||
idx := strings.ToUpper(asset + "|" + code)
|
idx := strings.ToLower(asset + ":" + code)
|
||||||
if g.Has(idx) {
|
if g.Has(idx) {
|
||||||
return g.Get(idx), nil
|
return g.Get(idx), nil
|
||||||
}
|
}
|
||||||
@ -47,11 +47,11 @@ func (g GeoIPCache) Unmarshal(filename, code string) (*router.GeoIP, error) {
|
|||||||
return &geoip, nil
|
return &geoip, nil
|
||||||
|
|
||||||
case errCodeNotFound:
|
case errCodeNotFound:
|
||||||
return nil, newError(code, " not found in ", filename)
|
return nil, newError("country code ", code, " not found in ", filename)
|
||||||
|
|
||||||
case errFailedToReadBytes, errFailedToReadExpectedLenBytes,
|
case errFailedToReadBytes, errFailedToReadExpectedLenBytes,
|
||||||
errInvalidGeodataFile, errInvalidGeodataVarintLength:
|
errInvalidGeodataFile, errInvalidGeodataVarintLength:
|
||||||
newError("failed to decode geodata file: ", filename, ". Fallback to the original ReadFile method.").AtWarning().WriteToLog()
|
newError("failed to decode geoip file: ", filename, ", fallback to the original ReadFile method")
|
||||||
geoipBytes, err = ioutil.ReadFile(asset)
|
geoipBytes, err = ioutil.ReadFile(asset)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -71,7 +71,7 @@ func (g GeoIPCache) Unmarshal(filename, code string) (*router.GeoIP, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, newError(code, " not found in ", filename)
|
return nil, newError("country code ", code, " not found in ", filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
type GeoSiteCache map[string]*router.GeoSite
|
type GeoSiteCache map[string]*router.GeoSite
|
||||||
@ -96,7 +96,7 @@ func (g GeoSiteCache) Set(key string, value *router.GeoSite) {
|
|||||||
|
|
||||||
func (g GeoSiteCache) Unmarshal(filename, code string) (*router.GeoSite, error) {
|
func (g GeoSiteCache) Unmarshal(filename, code string) (*router.GeoSite, error) {
|
||||||
asset := platform.GetAssetLocation(filename)
|
asset := platform.GetAssetLocation(filename)
|
||||||
idx := strings.ToUpper(asset + "|" + code)
|
idx := strings.ToLower(asset + ":" + code)
|
||||||
if g.Has(idx) {
|
if g.Has(idx) {
|
||||||
return g.Get(idx), nil
|
return g.Get(idx), nil
|
||||||
}
|
}
|
||||||
@ -112,11 +112,11 @@ func (g GeoSiteCache) Unmarshal(filename, code string) (*router.GeoSite, error)
|
|||||||
return &geosite, nil
|
return &geosite, nil
|
||||||
|
|
||||||
case errCodeNotFound:
|
case errCodeNotFound:
|
||||||
return nil, newError(code, " not found in ", filename)
|
return nil, newError("list ", code, " not found in ", filename)
|
||||||
|
|
||||||
case errFailedToReadBytes, errFailedToReadExpectedLenBytes,
|
case errFailedToReadBytes, errFailedToReadExpectedLenBytes,
|
||||||
errInvalidGeodataFile, errInvalidGeodataVarintLength:
|
errInvalidGeodataFile, errInvalidGeodataVarintLength:
|
||||||
newError("failed to decode geodata file: ", filename, ". Fallback to the original ReadFile method.").AtWarning().WriteToLog()
|
newError("failed to decode geoip file: ", filename, ", fallback to the original ReadFile method")
|
||||||
geositeBytes, err = ioutil.ReadFile(asset)
|
geositeBytes, err = ioutil.ReadFile(asset)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -136,5 +136,5 @@ func (g GeoSiteCache) Unmarshal(filename, code string) (*router.GeoSite, error)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, newError(code, " not found in ", filename)
|
return nil, newError("list ", code, " not found in ", filename)
|
||||||
}
|
}
|
||||||
|
@ -13,20 +13,20 @@ import (
|
|||||||
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
"github.com/v2fly/v2ray-core/v4/common/platform/filesystem"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
|
||||||
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
const (
|
||||||
|
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
||||||
|
geositeURL = "https://raw.githubusercontent.com/v2fly/domain-list-community/release/dlc.dat"
|
||||||
|
)
|
||||||
|
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
common.Must(err)
|
common.Must(err)
|
||||||
|
|
||||||
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
tempPath := filepath.Join(wd, "..", "..", "..", "..", "testing", "temp")
|
||||||
os.Setenv("v2ray.location.asset", tempPath)
|
geoipPath := filepath.Join(tempPath, "geoip.dat")
|
||||||
|
geositePath := filepath.Join(tempPath, "geosite.dat")
|
||||||
|
|
||||||
geoipPath := platform.GetAssetLocation("geoip.dat")
|
os.Setenv("v2ray.location.asset", tempPath)
|
||||||
geositePath := platform.GetAssetLocation("geosite.dat")
|
|
||||||
|
|
||||||
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
||||||
common.Must(os.MkdirAll(tempPath, 0755))
|
common.Must(os.MkdirAll(tempPath, 0755))
|
||||||
|
@ -18,27 +18,22 @@ import (
|
|||||||
_ "github.com/v2fly/v2ray-core/v4/infra/conf/geodata/standard"
|
_ "github.com/v2fly/v2ray-core/v4/infra/conf/geodata/standard"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
const geoipURL = "https://raw.githubusercontent.com/v2fly/geoip/release/geoip.dat"
|
||||||
|
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
common.Must(err)
|
common.Must(err)
|
||||||
|
|
||||||
tempPath := filepath.Join(wd, "..", "..", "testing", "temp")
|
tempPath := filepath.Join(wd, "..", "..", "..", "testing", "temp")
|
||||||
geoipPath := filepath.Join(tempPath, "geoip.dat")
|
geoipPath := filepath.Join(tempPath, "geoip.dat")
|
||||||
|
|
||||||
os.Setenv("v2ray.location.asset", tempPath)
|
os.Setenv("v2ray.location.asset", tempPath)
|
||||||
|
|
||||||
common.Must(os.MkdirAll(tempPath, 0755))
|
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
||||||
|
common.Must(os.MkdirAll(tempPath, 0755))
|
||||||
if _, err := os.Stat(platform.GetAssetLocation("geoip.dat")); err != nil && errors.Is(err, fs.ErrNotExist) {
|
geoipBytes, err := common.FetchHTTPContent(geoipURL)
|
||||||
if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
|
common.Must(err)
|
||||||
geoipBytes, err := common.FetchHTTPContent(geoipURL)
|
common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
|
||||||
common.Must(err)
|
|
||||||
common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user