makes cmd-id mandatory data 47/182347/1
authorJeonghoon Park <jh1979.park@samsung.com>
Fri, 22 Jun 2018 06:08:25 +0000 (15:08 +0900)
committerJeonghoon Park <jh1979.park@samsung.com>
Fri, 22 Jun 2018 06:08:25 +0000 (15:08 +0900)
Change-Id: Ie1a7aa05237ccb3ed9dc7f8d41cf4de77148f9cc

daemon/include/ttd-cmd.h
daemon/src/ttd-cmd.c
daemon/src/ttd-parse-cmd.c
daemon/src/ttd-worker-handle.c

index 1db6709..59969ce 100644 (file)
 
 #include "ttd-cmd-type.h"
 
-ttd_cmd_data *ttd_cmd_new(void);
+ttd_cmd_data *ttd_cmd_new(const char *cmd_id);
 void ttd_cmd_free(ttd_cmd_data *cmd);
 
 int ttd_cmd_set_state(ttd_cmd_data *cmd, ttd_cmd_state_e state);
 int ttd_cmd_set_type(ttd_cmd_data *cmd, ttd_cmd_type_e type);
-int ttd_cmd_set_id(ttd_cmd_data *cmd, const char *id);
 int ttd_cmd_set_command(ttd_cmd_data *cmd, int command);
 int ttd_cmd_set_data(ttd_cmd_data *cmd,
        void *data, unsigned int length, cmd_data_free_func free_fn);
index 5ed673c..577f853 100644 (file)
@@ -35,13 +35,26 @@ struct _ttd_cmd_data_s {
        cmd_data_free_func data_free_func;
 };
 
-ttd_cmd_data *ttd_cmd_new(void)
+ttd_cmd_data *ttd_cmd_new(const char *cmd_id)
 {
        ttd_cmd_data *data = NULL;
+       char *id = NULL;
+
+       retv_if(!cmd_id, NULL);
+
+       id = g_strdup(cmd_id);
+       retv_if(!id, NULL);
 
        data = g_try_malloc0(sizeof(struct _ttd_cmd_data_s));
+       if (!data) {
+               _E("failed to malloc");
+               g_free(id);
+               return NULL;
+       }
+
        data->state = TTD_CMD_STATE_UNKNOWN;
        data->type = TTD_CMD_TYPE_UNKNOWN;
+       data->cmd_id = id;
 
        return data;
 }
@@ -67,18 +80,6 @@ int ttd_cmd_set_type(ttd_cmd_data *cmd, ttd_cmd_type_e type)
        return 0;
 }
 
-int ttd_cmd_set_id(ttd_cmd_data *cmd, const char *id)
-{
-       retv_if(!cmd, -1);
-
-       if (cmd->cmd_id)
-               g_free(cmd->cmd_id);
-
-       cmd->cmd_id = g_strdup(id);
-
-       return 0;
-}
-
 int ttd_cmd_set_command(ttd_cmd_data *cmd, int command)
 {
        retv_if(!cmd, -1);
index 0234c10..6a51ccc 100644 (file)
@@ -281,21 +281,31 @@ int ttd_parse_json_to_cmd(const char *json_str, GList **cmd_list)
                        continue;
                }
 
-               temp_obj = json_object_object_get(obj, TTD_CMD_KEY_TYPE);
-               cmd_type = json_object_get_int(temp_obj);
+               temp_obj = json_object_object_get(obj, TTD_CMD_KEY_ID);
+               cmd_id = json_object_get_string(temp_obj);
+               if (!cmd_id) {
+                       _E("failed to get cmd id - %s", json_object_get_string(obj));
+                       continue;
+               }
+
+               cmd_data = ttd_cmd_new(cmd_id);
+               if (!cmd_data) {
+                       _E("failed to create cmd - %s", json_object_get_string(obj));
+                       continue;
+               }
 
-               cmd_data = ttd_cmd_new();
                ttd_cmd_set_state(cmd_data, TTD_CMD_STATE_CREATED);
+
+               temp_obj = json_object_object_get(obj, TTD_CMD_KEY_TYPE);
+               cmd_type = json_object_get_int(temp_obj);
                ttd_cmd_set_type(cmd_data, cmd_type);
+
                ret = __parse_cmd_by_type(obj, cmd_data);
                if (ret) {
                        _E("failed to parse cmd - %s", json_object_get_string(obj));
                        ttd_cmd_free(cmd_data);
                        continue;
                }
-               temp_obj = json_object_object_get(obj, TTD_CMD_KEY_ID);
-               cmd_id = json_object_get_string(temp_obj);
-               ttd_cmd_set_id(cmd_data, cmd_id);
 
                list = g_list_append(list, cmd_data);
        }
index a6a71c0..85fe063 100644 (file)
@@ -32,6 +32,7 @@ int ttd_worker_handle_info(ttd_cmd_data *c_data)
        const char *app_id = NULL;
 
        cmd_id = ttd_cmd_get_id(c_data);
+       retv_if(!cmd_id, -1);
 
        switch (ttd_cmd_get_command(c_data)) {
        case TTD_CMD_INFO_GET_SYSINFO:
@@ -54,8 +55,7 @@ int ttd_worker_handle_info(ttd_cmd_data *c_data)
        app_control_set_operation(ac_h, APP_CONTROL_OPERATION_DEFAULT);
        app_control_set_app_id(ac_h, app_id);
 
-       if (cmd_id)
-               app_control_add_extra_data(ac_h, "id", cmd_id);
+       app_control_add_extra_data(ac_h, "id", cmd_id);
 
        ac_ret = app_control_send_launch_request(ac_h, NULL, NULL);
        if (ac_ret != APP_CONTROL_ERROR_NONE) {
@@ -81,6 +81,7 @@ int ttd_worker_handle_pkgmgr(ttd_cmd_data *c_data)
        int ret = 0;
 
        cmd_id = ttd_cmd_get_id(c_data);
+       retv_if(!cmd_id, -1);
 
        switch (ttd_cmd_get_command(c_data)) {
        case TTD_CMD_PACKAGE_INSTALL:
@@ -110,9 +111,7 @@ int ttd_worker_handle_pkgmgr(ttd_cmd_data *c_data)
        app_control_set_operation(ac_h, APP_CONTROL_OPERATION_DEFAULT);
        app_control_set_app_id(ac_h, WORKER_PKG_MGR);
        app_control_add_extra_data(ac_h, "operation", op);
-
-       if (cmd_id)
-               app_control_add_extra_data(ac_h, "id", cmd_id);
+       app_control_add_extra_data(ac_h, "id", cmd_id);
 
        if (extra)
                app_control_add_extra_data(ac_h, "meta", extra);