cmd/cli: do not validate invalid syntax config

If the remote custom config is an invalid syntax config, we should not
do rules validation, prevent unnecessary error messages printed.
This commit is contained in:
Cuong Manh Le authored and Cuong Manh Le committed 2025-03-01 00:24:59 +07:00
1 parent 20e61550c2
commit 1ad63827e1
2 files changed
+12 -8

No files matched your search

+5 -5
View File
@@ -1843,7 +1843,11 @@ func doValidateCdRemoteConfig(cdUID string, fatal bool) error {
oldV := v
var cfgErr error
remoteCfg := &ctrld.Config{}
if cfgErr = validateCdRemoteConfig(rc, remoteCfg); cfgErr != nil {
if cfgErr = validateCdRemoteConfig(rc, remoteCfg); cfgErr == nil {
setListenerDefaultValue(remoteCfg)
setNetworkDefaultValue(remoteCfg)
cfgErr = validateConfig(remoteCfg)
} else {
if errors.As(cfgErr, &viper.ConfigParseError{}) {
if configStr, _ := base64.StdEncoding.DecodeString(rc.Ctrld.CustomConfig); len(configStr) > 0 {
tmpDir := os.TempDir()
@@ -1866,11 +1870,7 @@ func doValidateCdRemoteConfig(cdUID string, fatal bool) error {
} else {
mainLog.Load().Error().Msgf("failed to unmarshal custom config: %v", err)
}
} else {
setListenerDefaultValue(remoteCfg)
setNetworkDefaultValue(remoteCfg)
}
cfgErr = validateConfig(remoteCfg)
if cfgErr != nil {
mainLog.Load().Warn().Msg("disregarding invalid custom config")
}
+7 -3
View File
@@ -351,15 +351,19 @@ func (p *prog) apiConfigReload() {
if resolverConfig.Ctrld.CustomLastUpdate > lastUpdated || forced {
lastUpdated = time.Now().Unix()
cfg := &ctrld.Config{}
if err := validateCdRemoteConfig(resolverConfig, cfg); err != nil {
var cfgErr error
if cfgErr = validateCdRemoteConfig(resolverConfig, cfg); cfgErr == nil {
setListenerDefaultValue(cfg)
setNetworkDefaultValue(cfg)
cfgErr = validateConfig(cfg)
}
if cfgErr != nil {
logger.Warn().Err(err).Msg("skipping invalid custom config")
if _, err := controld.UpdateCustomLastFailed(cdUID, rootCmd.Version, cdDev, true); err != nil {
logger.Error().Err(err).Msg("could not mark custom last update failed")
}
return
}
setListenerDefaultValue(cfg)
setNetworkDefaultValue(cfg)
logger.Debug().Msg("custom config changes detected, reloading...")
p.apiReloadCh <- cfg
} else {