Modify to set upgrade progress status as upgrade trigger state 84/313384/1 accepted/tizen/8.0/unified/20240626.155902
authorSangYoun Kwak <sy.kwak@samsung.com>
Tue, 25 Jun 2024 06:14:31 +0000 (15:14 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Tue, 25 Jun 2024 06:23:52 +0000 (15:23 +0900)
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 <sy.kwak@samsung.com>
update-manager/fota/fota-installer.c

index fe3e054ae6f4121469cab85637265963c4bf4ed1..345675a22edd27e5e1fd3f74b78160de46fa50d4 100644 (file)
@@ -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)