From 664e770cda2ed9457108b75c97dc5a193f2b2f23 Mon Sep 17 00:00:00 2001 From: SangYoun Kwak Date: Tue, 25 Jun 2024 15:14:31 +0900 Subject: [PATCH] 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: I895b93fcaebb533dd6de7ab28e6a7b988e9f3c20 Signed-off-by: SangYoun Kwak --- update-manager/fota/fota-installer.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/update-manager/fota/fota-installer.c b/update-manager/fota/fota-installer.c index fe3e054..345675a 100644 --- a/update-manager/fota/fota-installer.c +++ b/update-manager/fota/fota-installer.c @@ -95,6 +95,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); @@ -191,7 +197,7 @@ int fota_installer_execute(pid_t sender_pid) /* Double fork to avoid zombies */ switch (fork()) { case -1: - exit(EXIT_FAILURE); + goto trigger_failed; case 0: break; default: @@ -202,7 +208,7 @@ int fota_installer_execute(pid_t sender_pid) if (ret == -1) _FLOGE("Failed to execl(%s %s)", FOTA_TRIGGER_PATH, client_delta_path); - exit(EXIT_FAILURE); + goto trigger_failed; } /* Since we double forked, we have to wait for the first child (otherwise @@ -217,8 +223,19 @@ int fota_installer_execute(pid_t sender_pid) execute_destroy: if (client_delta_path) free(client_delta_path); - + 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); } static int is_upgrade_completed(void) -- 2.34.1