From: Jeon Sang-Heon Date: Tue, 28 Jul 2020 17:43:16 +0000 (+0000) Subject: Move client status checker to common X-Git-Tag: submit/tizen/20200807.173049~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b5fa98c28562e1ee4035db4f39f3acb33fbe34c4;p=platform%2Fcore%2Fsystem%2Fupdate-control.git Move client status checker to common - client status(booting) is unique, so move to common Change-Id: I7d2065ac8131696b8717a7eb6fec3a623a2e036b Signed-off-by: Jeon Sang-Heon --- diff --git a/update-manager/client-controller.c b/update-manager/client-controller.c index a7cbbc6..355e659 100644 --- a/update-manager/client-controller.c +++ b/update-manager/client-controller.c @@ -19,7 +19,7 @@ int client_controller_process_launch_request() goto request_destroy; } - if (!client_status_checker_is_success()) { + if (!common_client_status_checker_is_success()) { _I("Failed to launch client, user session is unset, current top : %d", top); goto request_destroy; } diff --git a/update-manager/client-status-checker.c b/update-manager/client-status-checker.c deleted file mode 100644 index 3515e72..0000000 --- a/update-manager/client-status-checker.c +++ /dev/null @@ -1,71 +0,0 @@ -#include "update-manager.h" - -static int boot_status = -1; - -bool client_status_checker_is_success() -{ - return (boot_status == VCONFKEY_SYSMAN_BOOTING_SUCCESS); -} - -void client_status_checker_callback(keynode_t *node, void *user_data) -{ - int ret = 0; - - ret = vconf_keynode_get_type(node); - if (ret == VCONF_TYPE_INT) { - boot_status = vconf_keynode_get_int(node); - if (client_status_checker_is_success()) { - _I("Success to get bootstatus : success"); - - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, client_status_checker_callback); - if (ret == VCONF_OK) - _I("Success to remove bootstatus callback"); - else - _W("vconf_ignore_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); - - ret = client_controller_process_launch_request(); - if (ret < 0) - _E("Failed to process launch client : %d", ret); - } - } else { - _E("Invalid vconf key type : %d", ret); - } -} - -int client_status_checker_init() -{ - int ret = 0; - - _I("Start process to get boot status"); - ret = vconf_get_int(VCONFKEY_SYSMAN_BOOTINGSTATUS, &boot_status); - if (ret != VCONF_OK) { - _E("vconf_get_int for %s failed: %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); - return -1; - } - - if (client_status_checker_is_success()) { - _I("Success to get boot status : success"); - } else { - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, client_status_checker_callback, NULL); - if (ret != VCONF_OK) { - _E("vconf_notify_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); - return -1; - } - _I("Success to register boot status callback"); - } - - return 0; -} - -int client_status_checker_fini() -{ - int ret = 0; - - if (!client_status_checker_is_success()) { - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, client_status_checker_callback); - if (ret != VCONF_OK) - _W("vconf_ignore_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); - } - - return 0; -} diff --git a/update-manager/common/common-client-status-checker.c b/update-manager/common/common-client-status-checker.c new file mode 100644 index 0000000..19bb022 --- /dev/null +++ b/update-manager/common/common-client-status-checker.c @@ -0,0 +1,71 @@ +#include "../update-manager.h" + +static int boot_status = -1; + +bool common_client_status_checker_is_success() +{ + return (boot_status == VCONFKEY_SYSMAN_BOOTING_SUCCESS); +} + +void common_client_status_checker_callback(keynode_t *node, void *user_data) +{ + int ret = 0; + + ret = vconf_keynode_get_type(node); + if (ret == VCONF_TYPE_INT) { + boot_status = vconf_keynode_get_int(node); + if (common_client_status_checker_is_success()) { + _I("Success to get bootstatus : success"); + + ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, common_client_status_checker_callback); + if (ret == VCONF_OK) + _I("Success to remove bootstatus callback"); + else + _W("vconf_ignore_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); + + ret = client_controller_process_launch_request(); + if (ret < 0) + _E("Failed to process launch client : %d", ret); + } + } else { + _E("Invalid vconf key type : %d", ret); + } +} + +int common_client_status_checker_init() +{ + int ret = 0; + + _I("Start process to get boot status"); + ret = vconf_get_int(VCONFKEY_SYSMAN_BOOTINGSTATUS, &boot_status); + if (ret != VCONF_OK) { + _E("vconf_get_int for %s failed: %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); + return -1; + } + + if (common_client_status_checker_is_success()) { + _I("Success to get boot status : success"); + } else { + ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, common_client_status_checker_callback, NULL); + if (ret != VCONF_OK) { + _E("vconf_notify_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); + return -1; + } + _I("Success to register boot status callback"); + } + + return 0; +} + +int common_client_status_checker_fini() +{ + int ret = 0; + + if (!common_client_status_checker_is_success()) { + ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, common_client_status_checker_callback); + if (ret != VCONF_OK) + _W("vconf_ignore_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); + } + + return 0; +} diff --git a/update-manager/main.c b/update-manager/main.c index 36b1e01..51008f1 100644 --- a/update-manager/main.c +++ b/update-manager/main.c @@ -19,7 +19,7 @@ int main(int argc, char *argv[]) goto main_destroy; } - ret = client_status_checker_init(); + ret = common_client_status_checker_init(); if (ret < 0) { _E("Failed to initialize client status checker : %d", ret); goto main_destroy; @@ -60,7 +60,7 @@ main_destroy: if (ret < 0) _W("Failed to finalize fota client info checker : %d", ret); - ret = client_status_checker_fini(); + ret = common_client_status_checker_fini(); if (ret < 0) _W("Failed to finalize client status checker : %d", ret); diff --git a/update-manager/update-manager.h b/update-manager/update-manager.h index 65e41cf..dccebd2 100644 --- a/update-manager/update-manager.h +++ b/update-manager/update-manager.h @@ -78,16 +78,16 @@ int fota_client_info_checker_init(void); int fota_client_info_checker_fini(void); char *fota_client_info_get_appid(void); -int client_status_checker_init(void); -int client_status_checker_fini(void); -bool client_status_checker_is_success(void); - int client_controller_process_launch_request(void); int client_controller_add_launch_request_with_data(const char *, const char *); int common_storage_checker_init(void); int common_storage_checker_fini(void); +int common_client_status_checker_init(void); +int common_client_status_checker_fini(void); +bool common_client_status_checker_is_success(void); + int common_client_info_checker_callback(pkgmgrinfo_appinfo_h, char **); int common_client_info_checker_init(const char*, const char*, pkgmgrinfo_app_list_cb);