From: SangYoun Kwak Date: Tue, 25 Jun 2024 06:22:47 +0000 (+0900) Subject: Modify to set upgrade progress status as upgrade trigger state X-Git-Tag: accepted/tizen/unified/20240626.155305^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=848deb0eb81d17b8180caf9b504a400d5276efde;p=platform%2Fcore%2Fsystem%2Fupdate-control.git Modify to set upgrade progress status as upgrade trigger state If upgrade trigger is succeed, it means upgrade is started to upgrade progress status is set to 0. If upgrade trigger is failed, upgrade progress status is set to -1. Change-Id: I24b25a2ec52dfdd1bf6a010543361d130eb31ee4 Signed-off-by: SangYoun Kwak --- diff --git a/update-manager/fota/fota-installer.c b/update-manager/fota/fota-installer.c index 8ed8e8d..609214c 100644 --- a/update-manager/fota/fota-installer.c +++ b/update-manager/fota/fota-installer.c @@ -258,6 +258,12 @@ static int set_upgrade_state_ready(void) return -1; } + ret = hal_device_board_set_upgrade_progress_status(0); + if (ret < 0) { + _FLOGE("Failed to set upgrade progress status(%d): %d", 0, ret); + return -1; + } + _FLOGI("Succeed to set upgrade state %s -> %s", current_upgrade_state, next_upgrade_state); @@ -299,7 +305,7 @@ int fota_installer_ro_update_and_finish_update(pid_t sender_pid) /* Double fork to avoid zombies */ switch (fork()) { case -1: - exit(EXIT_FAILURE); + goto trigger_failed; case 0: break; default: @@ -313,7 +319,7 @@ int fota_installer_ro_update_and_finish_update(pid_t sender_pid) _FLOGE("Failed to execl(%s %s %s %s)", FOTA_TRIGGER_PATH, deltas.first_delta, deltas.second_delta, FOTA_TRIGGER_MODE_RO_UPDATE_AND_FINISH_UPDATE); - exit(EXIT_FAILURE); + goto trigger_failed; } /* Since we double forked, we have to wait for the first child (otherwise @@ -330,8 +336,20 @@ execute_destroy: free(deltas.first_delta); if (deltas.second_delta) free(deltas.second_delta); + if (status < 0) { + ret = hal_device_board_set_upgrade_progress_status(-1); + if (ret < 0) + _FLOGE("Failed to set upgrade progress status(%d): %d", + -1, ret); + } return status; + +trigger_failed: + ret = hal_device_board_set_upgrade_progress_status(-1); + if (ret < 0) + _FLOGE("Failed to set upgrade progress status(%d): %d", -1, ret); + exit(EXIT_FAILURE); } int fota_installer_ro_update(pid_t sender_pid) @@ -371,7 +389,7 @@ int fota_installer_ro_update(pid_t sender_pid) _FLOGE("Failed to execl(%s %s %s %s)", FOTA_TRIGGER_PATH, deltas.first_delta, deltas.second_delta, FOTA_TRIGGER_MODE_RO_UPDATE); - exit(EXIT_FAILURE); + goto trigger_failed; } ret = waitpid(pid, &exec_status, 0); @@ -389,8 +407,20 @@ execute_destroy: free(deltas.first_delta); if (deltas.second_delta) free(deltas.second_delta); + if (status < 0) { + ret = hal_device_board_set_upgrade_progress_status(-1); + if (ret < 0) + _FLOGE("Failed to set upgrade progress status(%d): %d", + -1, ret); + } return status; + +trigger_failed: + ret = hal_device_board_set_upgrade_progress_status(-1); + if (ret < 0) + _FLOGE("Failed to set upgrade progress status(%d): %d", -1, ret); + exit(EXIT_FAILURE); } int fota_installer_finish_update(void)