fix: GeoIP side-load
This commit is contained in:
@ -54,7 +54,7 @@ func Verify() bool {
|
||||
return err == nil
|
||||
}
|
||||
|
||||
func DefaultInstance() Reader {
|
||||
func Instance() Reader {
|
||||
once.Do(func() {
|
||||
mmdbPath := C.Path.MMDB()
|
||||
log.Debugln("Load MMDB file: %s", mmdbPath)
|
||||
|
@ -2,30 +2,19 @@ package mmdb
|
||||
|
||||
import (
|
||||
C "github.com/Dreamacro/clash/constant"
|
||||
"github.com/Dreamacro/clash/log"
|
||||
"github.com/oschwald/geoip2-golang"
|
||||
|
||||
"github.com/oschwald/maxminddb-golang"
|
||||
)
|
||||
|
||||
var overrideMmdb *geoip2.Reader
|
||||
|
||||
func InstallOverride(override *geoip2.Reader) {
|
||||
overrideMmdb = overrideMmdb
|
||||
}
|
||||
|
||||
func Instance() Reader {
|
||||
once.Do(func() {
|
||||
mmdb, err := maxminddb.Open(C.Path.MMDB())
|
||||
if err != nil {
|
||||
log.Fatalln("Can't load mmdb: %s", err.Error())
|
||||
}
|
||||
reader = Reader{Reader: mmdb}
|
||||
if mmdb.Metadata.DatabaseType == "sing-geoip" {
|
||||
reader.databaseType = typeSing
|
||||
} else {
|
||||
reader.databaseType = typeMaxmind
|
||||
}
|
||||
})
|
||||
|
||||
return reader
|
||||
func InstallOverride(override *maxminddb.Reader) {
|
||||
newReader := Reader{Reader: override}
|
||||
switch override.Metadata.DatabaseType {
|
||||
case "sing-geoip":
|
||||
reader.databaseType = typeSing
|
||||
case "Meta-geoip0":
|
||||
reader.databaseType = typeMetaV0
|
||||
default:
|
||||
reader.databaseType = typeMaxmind
|
||||
}
|
||||
reader = newReader
|
||||
}
|
||||
|
Reference in New Issue
Block a user