From bd2eaa93ee942fb76d31159db95c341af0c5f35f Mon Sep 17 00:00:00 2001 From: Mateusz Moscicki Date: Tue, 13 Aug 2024 11:43:18 +0200 Subject: [PATCH] Code reorganize to make SAM happy Functions have been separated into utils/ and base/. In common/ is the code that calls fota_* and recovery_* functions. SAM score has been improved from 3.62 to 4.92 Change-Id: I285e1f7c53feb3415de22b4a57879bc1ca80a744 --- .../base/base-boot-status-checker.c | 14 ++++++ .../base-client-controller.c} | 4 +- .../base-client-info-checker.c} | 8 +-- update-manager/base/base.h | 40 +++++++++++++++ .../common/common-boot-status-checker.c | 18 +++---- .../common/common-storage-checker.c | 1 + update-manager/common/common.h | 49 ------------------- update-manager/fota/fota-client-controller.c | 6 +-- .../fota/fota-client-info-checker.c | 6 +-- update-manager/fota/fota-common.c | 3 +- .../fota-dbus-manager.c} | 2 +- update-manager/fota/fota-installer.c | 3 +- update-manager/fota/fota-manager.h | 4 ++ update-manager/fota/fota-storage-checker.c | 3 +- update-manager/main.c | 1 + .../recovery/recovery-client-controller.c | 8 +-- .../recovery/recovery-client-info-checker.c | 6 +-- .../recovery/recovery-storage-checker.c | 2 +- update-manager/{common => utils}/sha1.c | 0 update-manager/{common => utils}/sha1.h | 0 .../common-tar.c => utils/utils-tar.c} | 4 +- .../{common/common-util.c => utils/utils.c} | 2 +- update-manager/utils/utils.h | 19 +++++++ 23 files changed, 117 insertions(+), 86 deletions(-) create mode 100644 update-manager/base/base-boot-status-checker.c rename update-manager/{common/common-client-controller.c => base/base-client-controller.c} (88%) rename update-manager/{common/common-client-info-checker.c => base/base-client-info-checker.c} (90%) create mode 100644 update-manager/base/base.h rename update-manager/{common/common-dbus-manager.c => fota/fota-dbus-manager.c} (99%) rename update-manager/{common => utils}/sha1.c (100%) rename update-manager/{common => utils}/sha1.h (100%) rename update-manager/{common/common-tar.c => utils/utils-tar.c} (99%) rename update-manager/{common/common-util.c => utils/utils.c} (99%) create mode 100644 update-manager/utils/utils.h diff --git a/update-manager/base/base-boot-status-checker.c b/update-manager/base/base-boot-status-checker.c new file mode 100644 index 0000000..ddfeeb6 --- /dev/null +++ b/update-manager/base/base-boot-status-checker.c @@ -0,0 +1,14 @@ +#include "base.h" + +static int boot_status = -1; + +void base_set_boot_status_checker(int status) +{ + boot_status = status; +} + +bool base_boot_status_checker_is_success() +{ + return (boot_status == VCONFKEY_SYSMAN_BOOTING_SUCCESS); +} + diff --git a/update-manager/common/common-client-controller.c b/update-manager/base/base-client-controller.c similarity index 88% rename from update-manager/common/common-client-controller.c rename to update-manager/base/base-client-controller.c index 8be288e..9503370 100644 --- a/update-manager/common/common-client-controller.c +++ b/update-manager/base/base-client-controller.c @@ -1,6 +1,6 @@ -#include "common.h" +#include "base.h" -int common_client_controller_launch(const char* appid, const char *key, const char *value) +int base_client_controller_launch(const char* appid, const char *key, const char *value) { int ret = 0, status = 0; bundle *bundle_data = NULL; diff --git a/update-manager/common/common-client-info-checker.c b/update-manager/base/base-client-info-checker.c similarity index 90% rename from update-manager/common/common-client-info-checker.c rename to update-manager/base/base-client-info-checker.c index f37eba2..083af7e 100644 --- a/update-manager/common/common-client-info-checker.c +++ b/update-manager/base/base-client-info-checker.c @@ -1,6 +1,6 @@ -#include "common.h" +#include "../base/base.h" -int common_client_info_checker_get_appid(pkgmgrinfo_appinfo_h handle, char **app_id) +int base_client_info_checker_get_appid(pkgmgrinfo_appinfo_h handle, char **app_id) { int ret = 0, status = 0; pkgmgrinfo_appinfo_h appinfo_h = NULL; @@ -48,7 +48,7 @@ callback_destroy: return status; } -int common_client_info_checker_filter(const char* key, const char* value, pkgmgrinfo_app_list_cb cb) +int base_client_info_checker_filter(const char* key, const char* value, pkgmgrinfo_app_list_cb cb) { int ret = 0, status = 0; pkgmgrinfo_appinfo_metadata_filter_h filter_h = NULL; @@ -82,4 +82,4 @@ init_destroy: } return status; -} \ No newline at end of file +} diff --git a/update-manager/base/base.h b/update-manager/base/base.h new file mode 100644 index 0000000..e9f40dd --- /dev/null +++ b/update-manager/base/base.h @@ -0,0 +1,40 @@ +#ifndef __BASE_H__ +#define __BASE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* Log */ +#define COMMON_LOG_TAG "UPDATE_MANAGER" + +#define _CLOGD(fmt, arg...) SLOG(LOG_INFO, COMMON_LOG_TAG, fmt, ##arg) +#define _CLOGI(fmt, arg...) SLOG(LOG_INFO, COMMON_LOG_TAG, fmt, ##arg) +#define _CLOGW(fmt, arg...) SLOG(LOG_WARN, COMMON_LOG_TAG, fmt, ##arg) +#define _CLOGE(fmt, arg...) SLOG(LOG_ERROR, COMMON_LOG_TAG, fmt, ##arg) + +/* Constant */ +#define MAX_BUFFER_SIZE 256 +#define OWNER_UID 5001 + +#define DBUS_INTERFACE_NAME "org.tizen.update.manager" +#define DBUS_NODE_NAME "/org/tizen/update/manager" + +int base_client_controller_launch(const char *, const char *, const char *); + +int base_client_info_checker_get_appid(pkgmgrinfo_appinfo_h, char **); +int base_client_info_checker_filter(const char *, const char *, pkgmgrinfo_app_list_cb); + +void base_set_boot_status_checker(int); +bool base_boot_status_checker_is_success(void); + +#endif /* __BASE_H__ */ diff --git a/update-manager/common/common-boot-status-checker.c b/update-manager/common/common-boot-status-checker.c index 5a62ceb..6926d27 100644 --- a/update-manager/common/common-boot-status-checker.c +++ b/update-manager/common/common-boot-status-checker.c @@ -1,22 +1,18 @@ +#include "../base/base.h" #include "common.h" #include "../recovery/recovery-manager.h" #include "../fota/fota-manager.h" -static int boot_status = -1; - -bool common_boot_status_checker_is_success() -{ - return (boot_status == VCONFKEY_SYSMAN_BOOTING_SUCCESS); -} - void common_boot_status_checker_callback(keynode_t *node, void *user_data) { int ret = 0; + int boot_status; ret = vconf_keynode_get_type(node); if (ret == VCONF_TYPE_INT) { boot_status = vconf_keynode_get_int(node); - if (common_boot_status_checker_is_success()) { + base_set_boot_status_checker(boot_status); + if (base_boot_status_checker_is_success()) { ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, common_boot_status_checker_callback); if (ret == VCONF_OK) _CLOGI("Success to remove bootstatus callback"); @@ -41,15 +37,17 @@ void common_boot_status_checker_callback(keynode_t *node, void *user_data) int common_boot_status_checker_init() { int ret = 0; + int boot_status; _CLOGI("Start process to get boot status"); ret = vconf_get_int(VCONFKEY_SYSMAN_BOOTINGSTATUS, &boot_status); + base_set_boot_status_checker(boot_status); if (ret != VCONF_OK) { _CLOGE("vconf_get_int for %s failed: %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); return -1; } - if (common_boot_status_checker_is_success()) { + if (base_boot_status_checker_is_success()) { _CLOGI("Success to get boot status : success"); } else { ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, common_boot_status_checker_callback, NULL); @@ -67,7 +65,7 @@ int common_boot_status_checker_fini() { int ret = 0; - if (!common_boot_status_checker_is_success()) { + if (!base_boot_status_checker_is_success()) { ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BOOTINGSTATUS, common_boot_status_checker_callback); if (ret != VCONF_OK) _CLOGW("vconf_ignore_key_changed for %s failed : %d", VCONFKEY_SYSMAN_BOOTINGSTATUS, ret); diff --git a/update-manager/common/common-storage-checker.c b/update-manager/common/common-storage-checker.c index 26d8b14..41cbb75 100644 --- a/update-manager/common/common-storage-checker.c +++ b/update-manager/common/common-storage-checker.c @@ -1,3 +1,4 @@ +#include "../base/base.h" #include "common.h" #include "../recovery/recovery-manager.h" #include "../fota/fota-manager.h" diff --git a/update-manager/common/common.h b/update-manager/common/common.h index afa4f3f..800363e 100644 --- a/update-manager/common/common.h +++ b/update-manager/common/common.h @@ -1,62 +1,13 @@ #ifndef __COMMON_H__ #define __COMMON_H__ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include - -/* Log */ -#define COMMON_LOG_TAG "UPDATE_MANAGER" - -#define _CLOGD(fmt, arg...) SLOG(LOG_INFO, COMMON_LOG_TAG, fmt, ##arg) -#define _CLOGI(fmt, arg...) SLOG(LOG_INFO, COMMON_LOG_TAG, fmt, ##arg) -#define _CLOGW(fmt, arg...) SLOG(LOG_WARN, COMMON_LOG_TAG, fmt, ##arg) -#define _CLOGE(fmt, arg...) SLOG(LOG_ERROR, COMMON_LOG_TAG, fmt, ##arg) - -/* Constant */ -#define MAX_BUFFER_SIZE 256 -#define OWNER_UID 5001 - -#define DBUS_INTERFACE_NAME "org.tizen.update.manager" -#define DBUS_NODE_NAME "/org/tizen/update/manager" - -/* Enum */ /* Function */ int common_boot_status_checker_init(void); int common_boot_status_checker_fini(void); -bool common_boot_status_checker_is_success(void); - -int common_client_controller_launch(const char *, const char *, const char *); - -int common_client_info_checker_get_appid(pkgmgrinfo_appinfo_h, char **); -int common_client_info_checker_filter(const char *, const char *, pkgmgrinfo_app_list_cb); int common_storage_checker_init(void); int common_storage_checker_fini(void); -int dbus_manager_init(void); -int dbus_manager_fini(void); - -int util_file_mkdir(const char *); -int util_file_remove(const char *); -int util_file_symlink(const char *, const char *); -int util_file_read_single_line(const char *, char[]); -int util_file_write_line(const char *, const char *); -int util_file_untar(const char *, const char *, const char *); -int verify_checksum(const char *checksum_path, const char *file_path); - #endif /* __COMMON_H__ */ diff --git a/update-manager/fota/fota-client-controller.c b/update-manager/fota/fota-client-controller.c index 9b2addf..b7b744a 100644 --- a/update-manager/fota/fota-client-controller.c +++ b/update-manager/fota/fota-client-controller.c @@ -1,4 +1,4 @@ -#include "../common/common.h" +#include "../base/base.h" #include "fota-manager.h" #define FOTA_CLIENT_APP_CTRL_PLUG_KEY "fota-plug" @@ -27,14 +27,14 @@ int fota_client_controller_process_event() return 1; } - if (!common_boot_status_checker_is_success()) { + if (!base_boot_status_checker_is_success()) { _FLOGI("Failed to launch fota client, user session is unset"); return 2; } for(idx = 0; idx < FOTA_EVENT_SIZE; ++idx) { if (fota_event_values[idx] != NULL) { - ret = common_client_controller_launch(appid, fota_event_keys[idx], fota_event_values[idx]); + ret = base_client_controller_launch(appid, fota_event_keys[idx], fota_event_values[idx]); if (ret < 0) { _FLOGE("Failed to launch fota client : %d, appid: %s, key : %s, value : %s", ret, appid, fota_event_keys[idx], fota_event_values[idx]); diff --git a/update-manager/fota/fota-client-info-checker.c b/update-manager/fota/fota-client-info-checker.c index 9e98cc3..6fb4893 100644 --- a/update-manager/fota/fota-client-info-checker.c +++ b/update-manager/fota/fota-client-info-checker.c @@ -1,4 +1,4 @@ -#include "../common/common.h" +#include "../base/base.h" #include "fota-manager.h" #define FOTA_CLIENT_METADATA_KEY "tizen-fota-manager" @@ -15,7 +15,7 @@ int fota_client_info_checker_callback(pkgmgrinfo_appinfo_h handle, void *user_da { int ret = 0; - ret = common_client_info_checker_get_appid(handle, &fota_client_app_id); + ret = base_client_info_checker_get_appid(handle, &fota_client_app_id); if (ret < 0) { _FLOGE("Failed to get fota app id from handle : %d", ret); return -1; @@ -33,7 +33,7 @@ int fota_client_info_checker_init() { int ret = 0; - ret = common_client_info_checker_filter(FOTA_CLIENT_METADATA_KEY, FOTA_CLIENT_METADATA_VALUE, fota_client_info_checker_callback); + ret = base_client_info_checker_filter(FOTA_CLIENT_METADATA_KEY, FOTA_CLIENT_METADATA_VALUE, fota_client_info_checker_callback); if (ret < 0) { _FLOGE("Failed to set fota client app filter : %d, key : %s, value : %s", ret, FOTA_CLIENT_METADATA_KEY, FOTA_CLIENT_METADATA_VALUE); diff --git a/update-manager/fota/fota-common.c b/update-manager/fota/fota-common.c index ab0d5c3..0fa147c 100644 --- a/update-manager/fota/fota-common.c +++ b/update-manager/fota/fota-common.c @@ -14,7 +14,8 @@ * limitations under the License. */ -#include "common/common.h" +#include "base/base.h" +#include "utils/utils.h" #include "fota-manager.h" int check_is_delta_appropriate(const char *delta_path, const char *delta_with_tools_path, bool *checksum_available) diff --git a/update-manager/common/common-dbus-manager.c b/update-manager/fota/fota-dbus-manager.c similarity index 99% rename from update-manager/common/common-dbus-manager.c rename to update-manager/fota/fota-dbus-manager.c index ebaec69..3b9d491 100644 --- a/update-manager/common/common-dbus-manager.c +++ b/update-manager/fota/fota-dbus-manager.c @@ -1,5 +1,5 @@ #include -#include "common.h" +#include "../base/base.h" #include "../fota/fota-manager.h" #include "update-manager-dbus.h" diff --git a/update-manager/fota/fota-installer.c b/update-manager/fota/fota-installer.c index 7b4cd3d..8649725 100644 --- a/update-manager/fota/fota-installer.c +++ b/update-manager/fota/fota-installer.c @@ -5,7 +5,8 @@ #include -#include "../common/common.h" +#include "../base/base.h" +#include "../utils/utils.h" #include "fota-manager.h" #define APP_SHARED_DIR "/opt/usr/home/owner/apps_rw" diff --git a/update-manager/fota/fota-manager.h b/update-manager/fota/fota-manager.h index b25efb8..de647b2 100644 --- a/update-manager/fota/fota-manager.h +++ b/update-manager/fota/fota-manager.h @@ -65,4 +65,8 @@ void fota_storage_checker_unplug(int, const char *); int check_is_delta_appropriate(const char *delta_path, const char *delta_with_tools_path, bool *checksum_available); bool check_delta_exist(const char *base_dir, struct deltas *deltas); +int dbus_manager_init(void); +int dbus_manager_fini(void); + + #endif /* __FOTA_MANAGER_H__ */ diff --git a/update-manager/fota/fota-storage-checker.c b/update-manager/fota/fota-storage-checker.c index d60b31d..a7ce628 100644 --- a/update-manager/fota/fota-storage-checker.c +++ b/update-manager/fota/fota-storage-checker.c @@ -1,4 +1,5 @@ -#include "../common/common.h" +#include "../base/base.h" +#include "../utils/utils.h" #include "fota-manager.h" static int fota_storage_id = -1; diff --git a/update-manager/main.c b/update-manager/main.c index 5fc60a8..92b7dfb 100644 --- a/update-manager/main.c +++ b/update-manager/main.c @@ -1,3 +1,4 @@ +#include "base/base.h" #include "common/common.h" #include "recovery/recovery-manager.h" #include "fota/fota-manager.h" diff --git a/update-manager/recovery/recovery-client-controller.c b/update-manager/recovery/recovery-client-controller.c index b2c07a4..1fb5d95 100644 --- a/update-manager/recovery/recovery-client-controller.c +++ b/update-manager/recovery/recovery-client-controller.c @@ -1,4 +1,4 @@ -#include "../common/common.h" +#include "../base/base.h" #include "recovery-manager.h" #define RECOVERY_CLIENT_APP_CTRL_PLUG_KEY "recovery-plug" @@ -24,14 +24,14 @@ int recovery_client_controller_process_event() return 1; } - if (!common_boot_status_checker_is_success()) { + if (!base_boot_status_checker_is_success()) { _RLOGI("Failed to launch recovery client, user session is unset"); return 2; } for(idx = 0; idx < RECOVERY_EVENT_SIZE; ++idx) { if (recovery_event_values[idx] != NULL) { - ret = common_client_controller_launch(appid, recovery_event_keys[idx], recovery_event_values[idx]); + ret = base_client_controller_launch(appid, recovery_event_keys[idx], recovery_event_values[idx]); if (ret < 0) { _RLOGE("Failed to launch recovery client : %d, appid: %s, key : %s, value : %s", ret, appid, recovery_event_keys[idx], recovery_event_values[idx]); @@ -86,4 +86,4 @@ int recovery_client_controller_add_event(recovery_event_idx idx, const char *val } return 0; -} \ No newline at end of file +} diff --git a/update-manager/recovery/recovery-client-info-checker.c b/update-manager/recovery/recovery-client-info-checker.c index f6aed75..d7e5624 100644 --- a/update-manager/recovery/recovery-client-info-checker.c +++ b/update-manager/recovery/recovery-client-info-checker.c @@ -1,4 +1,4 @@ -#include "../common/common.h" +#include "../base/base.h" #include "recovery-manager.h" #define RECOVERY_CLIENT_METADATA_KEY "tizen-recovery-manager" @@ -15,7 +15,7 @@ int recovery_client_info_checker_callback(pkgmgrinfo_appinfo_h handle, void *use { int ret = 0; - ret = common_client_info_checker_get_appid(handle, &recovery_client_app_id); + ret = base_client_info_checker_get_appid(handle, &recovery_client_app_id); if (ret < 0) { _RLOGE("Failed to get recovery app id from handle : %d", ret); return -1; @@ -35,7 +35,7 @@ int recovery_client_info_checker_init() { int ret = 0; - ret = common_client_info_checker_filter(RECOVERY_CLIENT_METADATA_KEY, RECOVERY_CLIENT_METADATA_VALUE, recovery_client_info_checker_callback); + ret = base_client_info_checker_filter(RECOVERY_CLIENT_METADATA_KEY, RECOVERY_CLIENT_METADATA_VALUE, recovery_client_info_checker_callback); if (ret < 0) { _RLOGE("Failed to set recovery client app filter : %d, key : %s, value : %s", ret, RECOVERY_CLIENT_METADATA_KEY, RECOVERY_CLIENT_METADATA_VALUE); diff --git a/update-manager/recovery/recovery-storage-checker.c b/update-manager/recovery/recovery-storage-checker.c index d2e6c23..c11cc5b 100644 --- a/update-manager/recovery/recovery-storage-checker.c +++ b/update-manager/recovery/recovery-storage-checker.c @@ -1,4 +1,4 @@ -#include "../common/common.h" +#include "../base/base.h" #include "recovery-manager.h" static int recovery_storage_id = -1; diff --git a/update-manager/common/sha1.c b/update-manager/utils/sha1.c similarity index 100% rename from update-manager/common/sha1.c rename to update-manager/utils/sha1.c diff --git a/update-manager/common/sha1.h b/update-manager/utils/sha1.h similarity index 100% rename from update-manager/common/sha1.h rename to update-manager/utils/sha1.h diff --git a/update-manager/common/common-tar.c b/update-manager/utils/utils-tar.c similarity index 99% rename from update-manager/common/common-tar.c rename to update-manager/utils/utils-tar.c index c7de444..733192b 100644 --- a/update-manager/common/common-tar.c +++ b/update-manager/utils/utils-tar.c @@ -1,4 +1,4 @@ -#include "common.h" +#include "../base/base.h" #include #include @@ -177,4 +177,4 @@ cleanup: tar_close(tar); gz_tar = NULL; return ret; -} \ No newline at end of file +} diff --git a/update-manager/common/common-util.c b/update-manager/utils/utils.c similarity index 99% rename from update-manager/common/common-util.c rename to update-manager/utils/utils.c index 20a911d..20ce17c 100644 --- a/update-manager/common/common-util.c +++ b/update-manager/utils/utils.c @@ -1,5 +1,5 @@ #include -#include "common.h" +#include "utils.h" #include "sha1.h" int util_file_mkdir(const char *path) diff --git a/update-manager/utils/utils.h b/update-manager/utils/utils.h new file mode 100644 index 0000000..72897c0 --- /dev/null +++ b/update-manager/utils/utils.h @@ -0,0 +1,19 @@ +#ifndef __UTILS_H__ +#define __UTILS_H__ + +#include +#include +#include +#include + +#include "../base/base.h" + +int util_file_mkdir(const char *); +int util_file_remove(const char *); +int util_file_symlink(const char *, const char *); +int util_file_read_single_line(const char *, char[]); +int util_file_write_line(const char *, const char *); +int util_file_untar(const char *, const char *, const char *); +int verify_checksum(const char *checksum_path, const char *file_path); + +#endif /* __UTILS_H__ */ -- 2.34.1