Add fota info controller 53/237753/1
authorJeon Sang-Heon <sh95.jeon@samsung.com>
Fri, 3 Jul 2020 16:44:34 +0000 (16:44 +0000)
committerJeon Sang-Heon <sh95.jeon@samsung.com>
Fri, 3 Jul 2020 16:46:58 +0000 (16:46 +0000)
- To reduce system info API call, add fota info controller
- replace system info API call to fota info controller method call

Change-Id: I1b9ae904498c89f45582b7f87cdbabafb72bc219
Signed-off-by: Jeon Sang-Heon <sh95.jeon@samsung.com>
update-manager/fota-controller.c
update-manager/fota-info-checker.c [new file with mode: 0644]
update-manager/main.c
update-manager/update-manager.h

index 99613665d16898db2f3a720c3659b12f82957544..4665ffbd751684df901f2b711cd014ddc84fba58 100644 (file)
@@ -18,9 +18,9 @@ int fota_controller_verify_delta(const char *delta_path)
                        goto verify_destroy;
                }
 
-               ret = system_info_get_platform_string(RELEASE_INFO_KEY, &current_release_version);
-               if (ret != SYSTEM_INFO_ERROR_NONE) {
-                       _E("system_info_get_platform_string failed : %d", ret);
+               current_release_version = fota_info_get_release_version();
+               if (current_release_version == NULL) {
+                       _E("Failed to get current release version");
                        status = -1;
                        goto verify_destroy;
                }
@@ -49,9 +49,6 @@ verify_destroy:
        if (ret < 0)
                _W("Failed to remove version.txt : %m");
 
-       if (current_release_version)
-               free(current_release_version);
-
        return status;
 }
 
@@ -139,9 +136,9 @@ int fota_controller_write_platform_version()
        char *platform_version = NULL;
        gchar *formatted_version = NULL;
 
-       ret = system_info_get_platform_string(PLATFORM_VERSION_KEY, &platform_version);
-       if (ret != SYSTEM_INFO_ERROR_NONE) {
-               _E("system_info_get_platform_string failed : %d", ret);
+       platform_version = fota_info_get_platform_version();
+       if (platform_version == NULL) {
+               _E("Failed to get platform version");
                status = -1;
                goto version_destroy;
        }
@@ -153,12 +150,9 @@ int fota_controller_write_platform_version()
                goto version_destroy;
        }
 
-       _I("Success to write version to %s : %s", PLATFORM_VERSION_PATH, platform_version);
+       _I("Success to write version to %s : %s", PLATFORM_VERSION_PATH, formatted_version);
 
 version_destroy:
-       if (platform_version)
-               free(platform_version);
-
        g_free(formatted_version);
 
        return status;
diff --git a/update-manager/fota-info-checker.c b/update-manager/fota-info-checker.c
new file mode 100644 (file)
index 0000000..0338f8f
--- /dev/null
@@ -0,0 +1,47 @@
+#include "update-manager.h"
+
+static char *release_version = NULL;
+static char *platform_version = NULL;
+
+char *fota_info_get_release_version()
+{
+       return release_version;
+}
+
+char *fota_info_get_platform_version()
+{
+       return platform_version;
+}
+
+int fota_info_checker_init()
+{
+       int ret = 0;
+
+       _I("Start process to get fota information");
+       ret = system_info_get_platform_string(RELEASE_INFO_KEY, &release_version);
+       if (ret != SYSTEM_INFO_ERROR_NONE) {
+               _E("system_info_get_platform_string failed : %d", ret);
+               return -1;
+       }
+
+       ret = system_info_get_platform_string(PLATFORM_VERSION_KEY, &platform_version);
+       if (ret != SYSTEM_INFO_ERROR_NONE) {
+               _E("system_info_get_platform_string failed : %d", ret);
+               return -1;
+       }
+
+       _I("Success to get fota information, platform : %s, release : %s",
+               platform_version, release_version);
+       return 0;
+}
+
+int fota_info_checker_fini()
+{
+       if (release_version)
+               free(release_version);
+
+       if (platform_version)
+               free(platform_version);
+
+       return 0;
+}
\ No newline at end of file
index 29b0adb2cb6f269ce5319e608cfbc8b5a7eadcb2..67fb2bb1a938226bdd4d164ff6b3c00cd7b5e244 100644 (file)
@@ -25,6 +25,12 @@ int main(int argc, char *argv[])
        }
 
        /* Fota */
+       ret = fota_info_checker_init();
+       if (ret < 0) {
+               _E("Failed to initialize fota info checker : %d", ret);
+               goto main_destroy;
+       }
+
        ret = fota_storage_checker_init();
        if (ret < 0) {
                _E("Failed to initialize fota storage checker : %d", ret);
@@ -52,6 +58,10 @@ main_destroy:
                _W("Failed to finalize client info checker : %d", ret);
 
        /* Fota */
+       ret = fota_info_checker_fini();
+       if (ret < 0)
+               _W("Failed to finalize fota info checker : %d", ret);
+
        ret = fota_storage_checker_fini();
        if (ret < 0)
                _W("Failed to finalize fota storage checker : %d", ret);
index 2a4a0ca761f4bb03e780c50fda520c7f67ad43ee..3af2b9c1d6da5491c6d0288a4095a1c963e9632e 100644 (file)
@@ -83,6 +83,11 @@ bool client_status_checker_is_success(void);
 int client_controller_process_launch_request(void);
 int client_controller_add_launch_request_with_data(char *, char *);
 
+int fota_info_checker_init(void);
+int fota_info_checker_fini(void);
+char *fota_info_get_release_version(void);
+char *fota_info_get_platform_version(void);
+
 int fota_storage_checker_init(void);
 int fota_storage_checker_fini(void);