platform: modularize api/gui, add docs-tests-web foundation, and refresh root config
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package app
|
||||
|
||||
func transportAppendDNSRule(rawDNS map[string]any, rule map[string]any) {
|
||||
if rawDNS == nil || len(rule) == 0 {
|
||||
return
|
||||
}
|
||||
rawRules, _ := rawDNS["rules"].([]any)
|
||||
for _, it := range rawRules {
|
||||
existing, ok := it.(map[string]any)
|
||||
if !ok || existing == nil {
|
||||
continue
|
||||
}
|
||||
if mapsEqual(existing, rule) {
|
||||
return
|
||||
}
|
||||
}
|
||||
rawRules = append(rawRules, rule)
|
||||
rawDNS["rules"] = rawRules
|
||||
}
|
||||
|
||||
func mapsEqual(a, b map[string]any) bool {
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
for k, av := range a {
|
||||
bv, ok := b[k]
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
if asString(av) != asString(bv) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user