EdgeDNS支持内置线路

This commit is contained in:
刘祥超
2021-08-09 13:59:55 +08:00
parent 7d604a0ed7
commit 618d1060bf
8 changed files with 298 additions and 174 deletions

View File

@@ -8,6 +8,34 @@ type Route struct {
AliasNames []string `json:"aliasNames"`
}
var allDefaultRouteMapping = map[string]*Route{} // code => *Route
func init() {
for _, route := range AllDefaultRoutes {
allDefaultRouteMapping[route.Code] = route
}
for _, route := range AllDefaultISPRoutes {
allDefaultRouteMapping[route.Code] = route
}
for _, route := range AllDefaultChinaProvinceRoutes {
allDefaultRouteMapping[route.Code] = route
}
for _, route := range AllDefaultWorldRegionRoutes {
allDefaultRouteMapping[route.Code] = route
}
}
// AllDefaultRoutes 默认线路
var AllDefaultRoutes = []*Route{
{
Name: "默认线路",
Code: DefaultRouteCode,
AliasNames: []string{"默认线路"},
},
}
const DefaultRouteCode = "default"
// AllDefaultISPRoutes 运营商线路
var AllDefaultISPRoutes = []*Route{
{
@@ -1455,3 +1483,8 @@ var AllDefaultWorldRegionRoutes = []*Route{
AliasNames: []string{"圣诞岛"},
},
}
// FindDefaultRoute 根据代号查找线路
func FindDefaultRoute(code string) *Route {
return allDefaultRouteMapping[code]
}

View File

@@ -41,3 +41,16 @@ func TestRoutes(t *testing.T) {
}
}
}
func TestFindDefaultRoute(t *testing.T) {
t.Log(FindDefaultRoute("isp:china_unicom"))
t.Log(FindDefaultRoute("china:province:beijing"))
t.Log(FindDefaultRoute("world:CN"))
t.Log(FindDefaultRoute("world:US"))
}
func BenchmarkFindDefaultRoute(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = FindDefaultRoute("world:CN")
}
}