return exec_status > 0 ? -exec_status : exec_status;
}
-static int is_upgrade_completed(void)
+static int get_upgrade_completed(bool *upgrade_completed)
{
char boot_mode[128];
int upgrde_progress_status = 0;
if (upgrde_progress_status != 100) {
_FLOGI("Upgrade not completed: upgrade progress status is not 100 but %d",
upgrde_progress_status);
+ *upgrade_completed = false;
return 0;
}
if (strncmp(boot_mode, "normal", sizeof(boot_mode)) != 0) {
_FLOGI("Boot mode is not normal: %s", boot_mode);
+ *upgrade_completed = false;
return 0;
}
- return 1;
+ *upgrade_completed = true;
+
+ return 0;
}
int fota_installer_check_and_set_upgrade_state_completed(void)
char current_upgrade_state[128];
char *next_upgrade_state = "completed";
int ret = 0;
+ bool upgrade_completed = false;
- ret = is_upgrade_completed();
- if (ret < 0) {
+ ret = get_upgrade_completed(&upgrade_completed);
+ if (ret != 0) {
_FLOGE("Failed to check if upgrade completed.");
return -1;
}
- if (ret == 0) {
+ if (!upgrade_completed) {
_FLOGI("Upgrade is not completed.");
return 0;
}