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
|
|
}
|