updates cmd get write function to handling multiple calling 74/176574/1
authorJeonghoon Park <jh1979.park@samsung.com>
Fri, 20 Apr 2018 05:11:03 +0000 (14:11 +0900)
committerJeonghoon Park <jh1979.park@samsung.com>
Fri, 20 Apr 2018 05:11:40 +0000 (14:11 +0900)
Change-Id: I942817ec0fd03528129fb62e48aed179965369c1

daemon/src/ttd-http.c

index 2baeeb4..ed3f78d 100644 (file)
@@ -39,9 +39,18 @@ static size_t _get_cmd_write(void *ptr, size_t size, size_t nmemb, void *data)
 
        res_size = size * nmemb;
 
-       if (received && res_size > 0)
-               *received = g_strndup((const char *)ptr, res_size);
-       else
+       if (received && res_size > 0) {
+               if (*received) {
+                       char *temp = NULL;
+                       char *new = NULL;
+                       temp = g_strndup((const char *)ptr, res_size);
+                       new = g_strdup_printf("%s%s", *received, temp);
+                       g_free(temp);
+                       g_free(*received);
+                       *received = new;
+               } else
+                       *received = g_strndup((const char *)ptr, res_size);
+       } else
                _E("fail to get response [res size : %d]", res_size);
 
        return res_size;
@@ -68,6 +77,7 @@ int ttd_http_get_cloud_cmd(const char *url, char **cmd_json)
        res = curl_easy_perform(curl);
        if (res != CURLE_OK) {
                _E("curl_easy_perform() failed: %s", curl_easy_strerror(res));
+               g_free(*cmd_json);
                ret = -1;
        }
        _D("received cmd : %s", *cmd_json ? *cmd_json : "NULL");