Add recovery client info checker 12/239812/9
authorJeon Sang-Heon <sh95.jeon@samsung.com>
Tue, 28 Jul 2020 16:41:08 +0000 (16:41 +0000)
committerJeon Sang-Heon <sh95.jeon@samsung.com>
Fri, 7 Aug 2020 17:24:20 +0000 (17:24 +0000)
- Move old client info checker to common
- Add recovery client info checker and fota info checker

Change-Id: Ic28daa3af1e4ddf5ef8b67efed623b3d33f4649d
Signed-off-by: Jeon Sang-Heon <sh95.jeon@samsung.com>
update-manager/client-controller.c
update-manager/common/common-client-info-checker.c [moved from update-manager/client-info-checker.c with 62% similarity]
update-manager/fota-controller.c
update-manager/fota/fota-client-info-checker.c [new file with mode: 0644]
update-manager/main.c
update-manager/recovery/recovery-client-info-checker.c [new file with mode: 0644]
update-manager/recovery/recovery-manager.h
update-manager/update-manager.h

index c95200f..a7cbbc6 100644 (file)
@@ -13,7 +13,7 @@ int client_controller_process_launch_request()
        char *appid = NULL;
        bundle *bundle_data = NULL;
 
-       appid = client_info_get_appid();
+       appid = fota_client_info_get_appid();
        if (appid == NULL) {
                _I("Failed to launch client, client app id not found, current top : %d", top);
                goto request_destroy;
similarity index 62%
rename from update-manager/client-info-checker.c
rename to update-manager/common/common-client-info-checker.c
index 9bb2cc7..3eb2c46 100644 (file)
@@ -1,19 +1,18 @@
-#include "update-manager.h"
+#include "../update-manager.h"
 
-static char *client_app_id = NULL;
-
-char *client_info_get_appid()
-{
-       return client_app_id;
-}
-
-int client_info_checker_callback(pkgmgrinfo_appinfo_h handle, void *user_data)
+int common_client_info_checker_callback(pkgmgrinfo_appinfo_h handle, char **app_id)
 {
        int ret = 0, status = 0;
        pkgmgrinfo_appinfo_h appinfo_h = NULL;
 
-       if (client_app_id != NULL) {
-               _E("Client app id already exists : %s", client_app_id);
+       if (app_id == NULL) {
+               _E("invalid params, app_id is should be address");
+               status = -1;
+               goto callback_destroy;
+       }
+
+       if (*app_id != NULL) {
+               _E("client app id already exists : %s", *app_id);
                status = -1;
                goto callback_destroy;
        }
@@ -25,24 +24,24 @@ int client_info_checker_callback(pkgmgrinfo_appinfo_h handle, void *user_data)
                goto callback_destroy;
        }
 
-       ret = pkgmgrinfo_appinfo_get_appid(appinfo_h, &client_app_id);
+       ret = pkgmgrinfo_appinfo_get_appid(appinfo_h, app_id);
        if (ret != PMINFO_R_OK) {
                _E("app_info_get_app_id failed : %d", ret);
                status = -1;
                goto callback_destroy;
        }
 
-       client_app_id = strndup(client_app_id, strlen(client_app_id));
-       if (client_app_id == NULL) {
+       *app_id = strndup(*app_id, strlen(*app_id));
+       if (*app_id == NULL) {
                _E("Failed strndup : %m");
                status = -1;
                goto callback_destroy;
        }
 
-       _I("Success to find client id : %s", client_app_id);
+       _I("Success to find client id : %s", *app_id);
        ret = client_controller_process_launch_request();
        if (ret < 0)
-               _E("Failed to process launch client : %d", ret);
+               _E("Failed to process launch fota_client : %d", ret);
 
 callback_destroy:
        if (appinfo_h) {
@@ -54,12 +53,12 @@ callback_destroy:
        return status;
 }
 
-int client_info_checker_init()
+int common_client_info_checker_init(const char* key, const char* value, pkgmgrinfo_app_list_cb cb)
 {
        int ret = 0, status = 0;
        pkgmgrinfo_appinfo_metadata_filter_h filter_h = NULL;
 
-       _I("Start process to get client app information");
+       _I("Start process to get fota_client app information");
        ret = pkgmgrinfo_appinfo_metadata_filter_create(&filter_h);
        if (ret != PMINFO_R_OK) {
                _E("pkgmgrinfo_appinfo_metadata_filter_create failed : %d", ret);
@@ -67,14 +66,14 @@ int client_info_checker_init()
                goto init_destroy;
        }
 
-       ret = pkgmgrinfo_appinfo_metadata_filter_add(filter_h, CLIENT_METADATA_KEY, CLIENT_METADATA_VALUE);
+       ret = pkgmgrinfo_appinfo_metadata_filter_add(filter_h, key, value);
        if (ret != PMINFO_R_OK) {
                _E("pkgmgrinfo_appinfo_metadata_filter_add failed : %d", ret);
                status = -1;
                goto init_destroy;
        }
 
-       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(filter_h, client_info_checker_callback, NULL);
+       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(filter_h, cb, NULL);
        if (ret != PMINFO_R_OK) {
                _E("pkgmgrinfo_appinfo_usr_metadata_filter_foreach failed : %d", ret);
                status = -1;
@@ -89,12 +88,4 @@ init_destroy:
        }
 
        return status;
-}
-
-int client_info_checker_fini()
-{
-       if (client_app_id)
-               free(client_app_id);
-
-       return 0;
-}
+}
\ No newline at end of file
index 3585eaf..6d1b1cc 100644 (file)
@@ -62,7 +62,7 @@ int fota_controller_setup_delta()
                goto delta_destroy;
        }
 
-       appid = client_info_get_appid();
+       appid = fota_client_info_get_appid();
        if (appid == NULL) {
                _I("Failed to get client app id");
                status = -1;
diff --git a/update-manager/fota/fota-client-info-checker.c b/update-manager/fota/fota-client-info-checker.c
new file mode 100644 (file)
index 0000000..ec59746
--- /dev/null
@@ -0,0 +1,42 @@
+#include "../update-manager.h"
+
+static char *fota_client_app_id = NULL;
+
+char *fota_client_info_get_appid()
+{
+       return fota_client_app_id;
+}
+
+int fota_client_info_checker_callback(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       int ret = 0;
+
+       ret = common_client_info_checker_callback(handle, &fota_client_app_id);
+       if (ret < 0) {
+               _E("Common client info checker callback failed at recovery");
+               return -1;
+       }
+
+       return 0;
+}
+
+int fota_client_info_checker_init()
+{
+       int ret = 0;
+
+       ret = common_client_info_checker_init(FOTA_CLIENT_METADATA_KEY, FOTA_CLIENT_METADATA_VALUE, fota_client_info_checker_callback);
+       if (ret < 0) {
+               _E("Common client info checker failed, key : %s, value : %s", FOTA_CLIENT_METADATA_KEY, FOTA_CLIENT_METADATA_VALUE);
+               return -1;
+       }
+
+       return 0;
+}
+
+int fota_client_info_checker_fini()
+{
+       if (fota_client_app_id)
+               free(fota_client_app_id);
+
+       return 0;
+}
index e78311c..36b1e01 100644 (file)
@@ -13,9 +13,9 @@ int main(int argc, char *argv[])
        }
 
        /* Client */
-       ret = client_info_checker_init();
+       ret = fota_client_info_checker_init();
        if (ret < 0) {
-               _E("Failed to initialize client info checker : %d", ret);
+               _E("Failed to initialize fota client info checker : %d", ret);
                goto main_destroy;
        }
 
@@ -56,9 +56,9 @@ int main(int argc, char *argv[])
 
 main_destroy:
        /* Client */
-       ret = client_info_checker_fini();
+       ret = fota_client_info_checker_fini();
        if (ret < 0)
-               _W("Failed to finalize client info checker : %d", ret);
+               _W("Failed to finalize fota client info checker : %d", ret);
 
        ret = client_status_checker_fini();
        if (ret < 0)
diff --git a/update-manager/recovery/recovery-client-info-checker.c b/update-manager/recovery/recovery-client-info-checker.c
new file mode 100644 (file)
index 0000000..273a3b6
--- /dev/null
@@ -0,0 +1,43 @@
+#include "recovery-manager.h"
+#include "../update-manager.h"
+
+static char *recovery_client_app_id = NULL;
+
+char *recovery_client_info_get_appid()
+{
+       return recovery_client_app_id;
+}
+
+int recovery_client_info_checker_callback(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       int ret = 0;
+
+       ret = common_client_info_checker_callback(handle, &recovery_client_app_id);
+       if (ret < 0) {
+               _E("Common client info checker callback failed at recovery");
+               return -1;
+       }
+
+       return 0;
+}
+
+int recovery_client_info_checker_init()
+{
+       int ret = 0;
+
+       ret = common_client_info_checker_init(RECOVERY_CLIENT_METADATA_KEY, RECOVERY_CLIENT_METADATA_VALUE, recovery_client_info_checker_callback);
+       if (ret < 0) {
+               _E("Common client info checker failed, key : %s, value : %s", RECOVERY_CLIENT_METADATA_KEY, RECOVERY_CLIENT_METADATA_KEY);
+               return -1;
+       }
+
+       return 0;
+}
+
+int recovery_client_info_checker_fini()
+{
+       if (recovery_client_app_id)
+               free(recovery_client_app_id);
+
+       return 0;
+}
index d043492..7958105 100644 (file)
 #define RECOVERY_IMAGE_FILE "tizen-recovery.img"
 
 /* Function */
+int recovery_client_info_checker_init(void);
+int recovery_client_info_checker_fini(void);
+char *recovery_client_info_get_appid(void);
+
 void recovery_storage_checker_plug(int, const char *);
 void recovery_storage_checker_unplug(int, const char *);
 
index 254f575..65e41cf 100644 (file)
@@ -39,8 +39,8 @@
 #define NODE_NAME                   "/org/tizen/update/manager"
 
 /* Client */
-#define CLIENT_METADATA_KEY         "tizen-update-manager"
-#define CLIENT_METADATA_VALUE       "client"
+#define FOTA_CLIENT_METADATA_KEY         "tizen-update-manager"
+#define FOTA_CLIENT_METADATA_VALUE       "client"
 #define CLIENT_APP_CTRL_LOCAL_KEY   "fota-local"
 #define CLIENT_APP_CTRL_UNPLUG_KEY  "fota-unplug"
 #define CLIENT_APP_CTRL_REBOOT_KEY  "fota-reboot"
@@ -74,9 +74,9 @@
 #define SHARED_DATA_DIR             "shared/data"
 
 /* Function */
-int client_info_checker_init(void);
-int client_info_checker_fini(void);
-char *client_info_get_appid(void);
+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);
@@ -88,6 +88,9 @@ 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_info_checker_callback(pkgmgrinfo_appinfo_h, char **);
+int common_client_info_checker_init(const char*, const char*, pkgmgrinfo_app_list_cb);
+
 int dbus_manager_init(void);
 int dbus_manager_fini(void);