fix: loadRadioSettingsYaml not honoring chk flag (#3197)

This commit is contained in:
Peter Feerick
2023-02-17 16:18:39 +10:00
committed by GitHub
parent f696470ea8
commit 7c7d541309
2 changed files with 7 additions and 4 deletions
+6 -3
View File
@@ -131,7 +131,7 @@ static const char * attemptLoad(const char *filename, ChecksumResult* checksum_s
return readYamlFile(filename, YamlTreeWalker::get_parser_calls(), &tree, checksum_status);
}
const char * loadRadioSettingsYaml()
const char * loadRadioSettingsYaml(bool checks)
{
// YAML reader
TRACE("YAML radio settings reader");
@@ -139,6 +139,9 @@ const char * loadRadioSettingsYaml()
ChecksumResult checksum_status;
const char* p = attemptLoad(RADIO_SETTINGS_YAML_PATH, &checksum_status);
if(!checks)
return p;
if((p != NULL) || (checksum_status != ChecksumResult::Success) ) {
// Read failed or checksum check failed
FRESULT result = FR_OK;
@@ -182,7 +185,7 @@ const char * loadRadioSettings()
g_eeGeneral.internalModule = DEFAULT_INTERNAL_MODULE;
#endif
const char* error = loadRadioSettingsYaml();
const char* error = loadRadioSettingsYaml(true);
if (!error) {
g_eeGeneral.chkSum = evalChkSum();
}
@@ -598,5 +601,5 @@ const char * restoreModel(uint8_t idx, char *model_name)
bool storageReadRadioSettings(bool checks)
{
if (!sdMounted()) sdInit();
return loadRadioSettingsYaml() == nullptr;
return loadRadioSettingsYaml(checks) == nullptr;
}
+1 -1
View File
@@ -26,7 +26,7 @@ enum class ChecksumResult {Success, Failed, None};
constexpr uint8_t MODELIDX_STRLEN = sizeof(MODEL_FILENAME_PREFIX "00");
const char * loadRadioSettingsYaml();
const char * loadRadioSettingsYaml(bool checks);
const char * writeModelYaml(const char* filename);
const char * readModelYaml(const char * filename, uint8_t * buffer, uint32_t size, const char* pathName = STR_MODELS_PATH);
bool YamlFileChecksum(const YamlNode* root_node, uint8_t* data, uint16_t* checksum);