mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-12-18 21:11:50 +03:00
48 lines
967 B
Go
48 lines
967 B
Go
|
package configmigrate
|
||
|
|
||
|
import (
|
||
|
"github.com/AdguardTeam/AdGuardHome/internal/dnsforward"
|
||
|
)
|
||
|
|
||
|
// migrateTo28 performs the following changes:
|
||
|
//
|
||
|
// # BEFORE:
|
||
|
// 'dns':
|
||
|
// 'all_servers': true
|
||
|
// 'fastest_addr': true
|
||
|
// # …
|
||
|
// # …
|
||
|
//
|
||
|
// # AFTER:
|
||
|
// 'dns':
|
||
|
// 'upstream_mode': 'parallel'
|
||
|
// # …
|
||
|
// # …
|
||
|
func migrateTo28(diskConf yobj) (err error) {
|
||
|
diskConf["schema_version"] = 28
|
||
|
|
||
|
dns, ok, err := fieldVal[yobj](diskConf, "dns")
|
||
|
if !ok {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
allServers, _, _ := fieldVal[bool](dns, "all_servers")
|
||
|
fastestAddr, _, _ := fieldVal[bool](dns, "fastest_addr")
|
||
|
|
||
|
var upstreamModeType dnsforward.UpstreamMode
|
||
|
if allServers {
|
||
|
upstreamModeType = dnsforward.UpstreamModeParallel
|
||
|
} else if fastestAddr {
|
||
|
upstreamModeType = dnsforward.UpstreamModeFastestAddr
|
||
|
} else {
|
||
|
upstreamModeType = dnsforward.UpstreamModeLoadBalance
|
||
|
}
|
||
|
|
||
|
dns["upstream_mode"] = upstreamModeType
|
||
|
|
||
|
delete(dns, "all_servers")
|
||
|
delete(dns, "fastest_addr")
|
||
|
|
||
|
return nil
|
||
|
}
|