platform: modularize api/gui, add docs-tests-web foundation, and refresh root config
This commit is contained in:
63
selective-vpn-api/app/dns_settings_state_mode.go
Normal file
63
selective-vpn-api/app/dns_settings_state_mode.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package app
|
||||
|
||||
import dnscfgpkg "selective-vpn-api/app/dnscfg"
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// EN: `loadDNSMode` loads dns mode from storage or config.
|
||||
// RU: `loadDNSMode` - загружает dns mode из хранилища или конфига.
|
||||
// ---------------------------------------------------------------------
|
||||
func loadDNSMode() DNSMode {
|
||||
st, needPersist := dnscfgpkg.LoadMode(dnscfgModeConfig())
|
||||
mode := DNSMode{
|
||||
ViaSmartDNS: st.ViaSmartDNS,
|
||||
SmartDNSAddr: st.SmartDNSAddr,
|
||||
Mode: DNSResolverMode(st.Mode),
|
||||
}
|
||||
if needPersist {
|
||||
_ = saveDNSMode(mode)
|
||||
}
|
||||
return mode
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// EN: `saveDNSMode` saves dns mode to persistent storage.
|
||||
// RU: `saveDNSMode` - сохраняет dns mode в постоянное хранилище.
|
||||
// ---------------------------------------------------------------------
|
||||
func saveDNSMode(mode DNSMode) error {
|
||||
return dnscfgpkg.SaveMode(
|
||||
dnscfgModeConfig(),
|
||||
dnscfgpkg.ModeState{
|
||||
ViaSmartDNS: mode.ViaSmartDNS,
|
||||
SmartDNSAddr: mode.SmartDNSAddr,
|
||||
Mode: string(mode.Mode),
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
func dnscfgModeConfig() dnscfgpkg.ModeConfig {
|
||||
return dnscfgpkg.ModeConfig{
|
||||
Path: dnsModePath,
|
||||
DirectMode: string(DNSModeDirect),
|
||||
DefaultSmartDNSAddr: resolveDefaultSmartDNSAddr(),
|
||||
NormalizeResolverMode: func(mode string, viaSmartDNS bool) string {
|
||||
return string(normalizeDNSResolverMode(DNSResolverMode(mode), viaSmartDNS))
|
||||
},
|
||||
NormalizeSmartDNSAddr: normalizeSmartDNSAddr,
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// EN: `normalizeDNSResolverMode` normalizes dns resolver mode values.
|
||||
// RU: `normalizeDNSResolverMode` - нормализует значения режима dns резолвера.
|
||||
// ---------------------------------------------------------------------
|
||||
func normalizeDNSResolverMode(mode DNSResolverMode, viaSmartDNS bool) DNSResolverMode {
|
||||
return DNSResolverMode(
|
||||
dnscfgpkg.NormalizeResolverMode(
|
||||
string(mode),
|
||||
viaSmartDNS,
|
||||
string(DNSModeDirect),
|
||||
string(DNSModeSmartDNS),
|
||||
string(DNSModeHybridWildcard),
|
||||
),
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user