monitor: Change delimiter for request/response tokenizing 36/273036/2
authorDongwoo Lee <dwoo08.lee@samsung.com>
Tue, 29 Mar 2022 05:24:47 +0000 (14:24 +0900)
committerDongwoo Lee <dwoo08.lee@samsung.com>
Thu, 31 Mar 2022 03:02:27 +0000 (12:02 +0900)
Since JSON format use character ':' as its internal representation,
delimiter of API tokenizing is change into '$'.

Change-Id: I0705eeb4a860cd279e9ee7b1ab62db3318786fc6
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
lib/tmonitor/tmonitor.c
src/monitor/request-handler.c

index d671adf..0d2aacc 100644 (file)
@@ -99,7 +99,7 @@ static int handle_resource_attr(int request, int id, int resource_id, u_int64_t
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        request, resource_id, attr_mask);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -114,7 +114,7 @@ static int handle_resource_attr(int request, int id, int resource_id, u_int64_t
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != request) {
@@ -197,7 +197,7 @@ int tmonitor_get_resource_count(int id, int resource_type)
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d",
+       buffer_len = sprintf(buffer, "%d$%d",
                        REQUEST_GET_RESOURCE_COUNT, resource_type);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -212,7 +212,7 @@ int tmonitor_get_resource_count(int id, int resource_type)
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_RESOURCE_COUNT) {
@@ -231,7 +231,7 @@ int tmonitor_create_resource(int id, int resource_type)
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d", REQUEST_CREATE_RESOURCE, resource_type);
+       buffer_len = sprintf(buffer, "%d$%d", REQUEST_CREATE_RESOURCE, resource_type);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer for create resource");
                return -EIO;
@@ -245,7 +245,7 @@ int tmonitor_create_resource(int id, int resource_type)
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_CREATE_RESOURCE) {
@@ -264,7 +264,7 @@ int tmonitor_delete_resource(int id, int resource_id)
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d", REQUEST_DELETE_RESOURCE, resource_id);
+       buffer_len = sprintf(buffer, "%d$%d", REQUEST_DELETE_RESOURCE, resource_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer for create resource");
                return -EIO;
@@ -278,7 +278,7 @@ int tmonitor_delete_resource(int id, int resource_id)
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_DELETE_RESOURCE) {
@@ -297,7 +297,7 @@ int tmonitor_set_resource_ctrl(int id, int resource_id, u_int64_t ctrl_id, int v
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64":%d",
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64"$%d",
                        REQUEST_SET_RESOURCE_CTRL, resource_id, ctrl_id, value);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -312,7 +312,7 @@ int tmonitor_set_resource_ctrl(int id, int resource_id, u_int64_t ctrl_id, int v
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_SET_RESOURCE_CTRL) {
@@ -343,7 +343,7 @@ bool tmonitor_is_resource_attr_supported(int id, int resource_id, u_int64_t attr
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64"",
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64"",
                        REQUEST_IS_RESOURCE_ATTR_SUPPORTED, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -358,7 +358,7 @@ bool tmonitor_is_resource_attr_supported(int id, int resource_id, u_int64_t attr
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_IS_RESOURCE_ATTR_SUPPORTED) {
@@ -391,7 +391,7 @@ int tmonitor_update(int id)
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_UPDATE_RESOURCE_ALL) {
@@ -410,7 +410,7 @@ int tmonitor_update_resource(int id, int resource_id)
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d", REQUEST_UPDATE_RESOURCE, resource_id);
+       buffer_len = sprintf(buffer, "%d$%d", REQUEST_UPDATE_RESOURCE, resource_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
                return -EIO;
@@ -424,7 +424,7 @@ int tmonitor_update_resource(int id, int resource_id)
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d", &response_req, &ret) < 2)
+       if (sscanf(buffer, "%d$%d", &response_req, &ret) < 2)
                return -EINVAL;
 
        if (response_req != REQUEST_UPDATE_RESOURCE) {
@@ -443,7 +443,7 @@ int tmonitor_get_value_int(int id, int resource_id, u_int64_t attr_id, int32_t *
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_INT, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -458,7 +458,7 @@ int tmonitor_get_value_int(int id, int resource_id, u_int64_t attr_id, int32_t *
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d:%d", &response_req, value, &ret) < 3)
+       if (sscanf(buffer, "%d$%d$%d", &response_req, value, &ret) < 3)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_VALUE_INT) {
@@ -477,7 +477,7 @@ int tmonitor_get_value_int64(int id, int resource_id, u_int64_t attr_id, int64_t
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_INT64, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -492,7 +492,7 @@ int tmonitor_get_value_int64(int id, int resource_id, u_int64_t attr_id, int64_t
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%"PRId64":%d", &response_req, value, &ret) < 3)
+       if (sscanf(buffer, "%d$%"PRId64"$%d", &response_req, value, &ret) < 3)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_VALUE_INT64) {
@@ -511,7 +511,7 @@ int tmonitor_get_value_uint(int id, int resource_id, u_int64_t attr_id, u_int32_
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_UINT, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -526,7 +526,7 @@ int tmonitor_get_value_uint(int id, int resource_id, u_int64_t attr_id, u_int32_
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%d:%d", &response_req, value, &ret) < 3)
+       if (sscanf(buffer, "%d$%d$%d", &response_req, value, &ret) < 3)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_VALUE_UINT) {
@@ -545,7 +545,7 @@ int tmonitor_get_value_uint64(int id, int resource_id, u_int64_t attr_id, u_int6
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_UINT64, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -560,7 +560,7 @@ int tmonitor_get_value_uint64(int id, int resource_id, u_int64_t attr_id, u_int6
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%"PRIu64":%d", &response_req, value, &ret) < 3)
+       if (sscanf(buffer, "%d$%"PRIu64"$%d", &response_req, value, &ret) < 3)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_VALUE_UINT64) {
@@ -579,7 +579,7 @@ int tmonitor_get_value_double(int id, int resource_id, u_int64_t attr_id, double
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_DOUBLE, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -594,7 +594,7 @@ int tmonitor_get_value_double(int id, int resource_id, u_int64_t attr_id, double
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%lf:%d", &response_req, value, &ret) < 3)
+       if (sscanf(buffer, "%d$%lf$%d", &response_req, value, &ret) < 3)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_VALUE_DOUBLE) {
@@ -613,7 +613,7 @@ int tmonitor_get_value_string(int id, int resource_id, u_int64_t attr_id, char *
        int response_req;
        int ret;
 
-       buffer_len = sprintf(buffer, "%d:%d:%"PRIu64,
+       buffer_len = sprintf(buffer, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_STRING, resource_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -628,7 +628,7 @@ int tmonitor_get_value_string(int id, int resource_id, u_int64_t attr_id, char *
        }
 
        buffer[buffer_len] = '\0';
-       if (sscanf(buffer, "%d:%[^:]:%d", &response_req, value, &ret) < 3)
+       if (sscanf(buffer, "%d$%[^$]$%d", &response_req, value, &ret) < 3)
                return -EINVAL;
 
        if (response_req != REQUEST_GET_VALUE_STRING) {
@@ -658,7 +658,7 @@ tmonitor_get_array(int id, int res_id, u_int64_t attr_id, int data_type, void **
                return -ENOMEM;
        }
 
-       buffer_len = snprintf(buffer, ARRAY_BUFF_MAX, "%d:%d:%"PRIu64,
+       buffer_len = snprintf(buffer, ARRAY_BUFF_MAX, "%d$%d$%"PRIu64,
                        REQUEST_GET_VALUE_ARRAY, res_id, attr_id);
        if (send(id, buffer, buffer_len, 0) < 0) {
                _E("[libpass] error occurred while sending buffer");
@@ -675,7 +675,7 @@ tmonitor_get_array(int id, int res_id, u_int64_t attr_id, int data_type, void **
        }
        buffer[buffer_len] = '\0';
 
-       if (sscanf(buffer, "%d:%d|%d|%[^:]:%d", &response_req,
+       if (sscanf(buffer, "%d$%d|%d|%[^$]$%d", &response_req,
                                &array_type, &array_len, array_str, &ret) < 5) {
                ret = -EINVAL;
                goto out_free;
index 9d8a224..3cb97ca 100644 (file)
@@ -180,7 +180,7 @@ static int handle_request_set_resource_attr(struct request_client *client, char
         * Format of REQUEST_SET_RESOURCE_ATTR and REQUEST_UNSET_RESOURCE_ATTR args:
         *  - <RESOURCE_ID:INTEREST_MASK>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &interest_masks) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &interest_masks) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -214,7 +214,7 @@ static int handle_request_is_resource_attr_supported(struct request_client *clie
         * Format of REQUEST_IS_RESOURCE_ATTR_SUPPORTED args:
         *  - <RESOURCE_ID:RESOURCE_ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64"", &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64"", &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -237,7 +237,7 @@ static int handle_request_set_resource_ctrl(struct request_client *client, char
         * Format of REQUEST_SET_RESOURCE_CTRL args:
         *  - <RESOURCE_ID:CONTROL_ID:CONTROL_VALUE>
         */
-       if (sscanf(args, "%d:%"PRIu64":%d", &resource_id, &ctrl_id, &value) < 3)
+       if (sscanf(args, "%d$%"PRIu64"$%d", &resource_id, &ctrl_id, &value) < 3)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -260,7 +260,7 @@ static int handle_request_get_value_int(struct request_client *client, char *arg
         * Format of REQUEST_GET_VALUE_INT args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -283,7 +283,7 @@ static int handle_request_get_value_int64(struct request_client *client, char *a
         * Format of REQUEST_GET_VALUE_INT64 args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -307,7 +307,7 @@ handle_request_get_value_uint(struct request_client *client, char *args, u_int32
         * Format of REQUEST_GET_VALUE_UINT args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -331,7 +331,7 @@ handle_request_get_value_uint64(struct request_client *client, char *args, u_int
         * Format of REQUEST_GET_VALUE_UINT64 args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -354,7 +354,7 @@ static int handle_request_get_value_double(struct request_client *client, char *
         * Format of REQUEST_GET_VALUE_DOUBLE args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -377,7 +377,7 @@ static int handle_request_get_value_string(struct request_client *client, char *
         * Format of REQUEST_GET_VALUE_INT args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -401,7 +401,7 @@ handle_request_get_value_array(struct request_client *client, char *args, struct
         * Format of REQUEST_GET_VALUE_ARRAY args:
         *  - <RESOURCE_ID:ATTR_ID>
         */
-       if (sscanf(args, "%d:%"PRIu64, &resource_id, &attr_id) < 2)
+       if (sscanf(args, "%d$%"PRIu64, &resource_id, &attr_id) < 2)
                return -EINVAL;
 
        res = get_resource_by_id(client, resource_id);
@@ -415,7 +415,7 @@ static int split_request_type_and_args(char *buffer, char **args)
 {
        char *request_type_str;
 
-       request_type_str = strsep(&buffer, ":");
+       request_type_str = strsep(&buffer, "$");
 
        *args = buffer;
 
@@ -451,7 +451,7 @@ static int handle_request(struct request_client *client, char *request)
         * Format of response
         *  - <REQUEST_TYPE[:REQUEST_RESULT_PAYLOAD]:REQUEST_RESULT_VALUE>
         */
-       ADD_RESPONSE(response, buffer_len, "%d:", request_type);
+       ADD_RESPONSE(response, buffer_len, "%d$", request_type);
 
        switch (request_type) {
        case REQUEST_CREATE_RESOURCE:
@@ -505,7 +505,7 @@ static int handle_request(struct request_client *client, char *request)
                        if (ret < 0)
                                _D("failed to get value");
 
-                       ADD_RESPONSE(response, buffer_len, "%d:", value);
+                       ADD_RESPONSE(response, buffer_len, "%d$", value);
                }
                break;
        case REQUEST_GET_VALUE_INT64:
@@ -516,7 +516,7 @@ static int handle_request(struct request_client *client, char *request)
                        if (ret < 0)
                                _D("failed to get value");
 
-                       ADD_RESPONSE(response, buffer_len, "%"PRId64":", value);
+                       ADD_RESPONSE(response, buffer_len, "%"PRId64"$", value);
                }
                break;
        case REQUEST_GET_VALUE_UINT:
@@ -527,7 +527,7 @@ static int handle_request(struct request_client *client, char *request)
                        if (ret < 0)
                                _D("failed to get value");
 
-                       ADD_RESPONSE(response, buffer_len, "%u:", value);
+                       ADD_RESPONSE(response, buffer_len, "%u$", value);
                }
                break;
        case REQUEST_GET_VALUE_UINT64:
@@ -538,7 +538,7 @@ static int handle_request(struct request_client *client, char *request)
                        if (ret < 0)
                                _D("failed to get value");
 
-                       ADD_RESPONSE(response, buffer_len, "%"PRIu64":", value);
+                       ADD_RESPONSE(response, buffer_len, "%"PRIu64"$", value);
                }
                break;
        case REQUEST_GET_VALUE_DOUBLE:
@@ -549,7 +549,7 @@ static int handle_request(struct request_client *client, char *request)
                        if (ret < 0)
                                _D("failed to get value");
 
-                       ADD_RESPONSE(response, buffer_len, "%lf:", value);
+                       ADD_RESPONSE(response, buffer_len, "%lf$", value);
                }
                break;
        case REQUEST_GET_VALUE_STRING:
@@ -560,7 +560,7 @@ static int handle_request(struct request_client *client, char *request)
                        if (ret < 0)
                                _D("failed to get value");
 
-                       ADD_RESPONSE(response, buffer_len, "%s:", value);
+                       ADD_RESPONSE(response, buffer_len, "%s$", value);
                }
                break;
        case REQUEST_GET_VALUE_ARRAY:
@@ -573,7 +573,7 @@ static int handle_request(struct request_client *client, char *request)
                                _D("failed to get value");
 
                        if (array->length == 0) {
-                               ADD_RESPONSE(response, buffer_len, "%d|%d|:",
+                               ADD_RESPONSE(response, buffer_len, "%d|%d|$",
                                                array->type, array->length);
                                break;
                        }
@@ -585,42 +585,42 @@ static int handle_request(struct request_client *client, char *request)
                                for (i = 0; i < array->length - 1; i++)
                                        ADD_RESPONSE(response, buffer_len, "%d,",
                                                        ((int32_t *)array->data)[i]);
-                               ADD_RESPONSE(response, buffer_len, "%d:",
+                               ADD_RESPONSE(response, buffer_len, "%d$",
                                                ((int32_t *)array->data)[i]);
                                break;
                        case DATA_TYPE_INT64:
                                for (i = 0; i < array->length - 1; i++)
                                        ADD_RESPONSE(response, buffer_len, "%"PRId64",",
                                                        ((int64_t *)array->data)[i]);
-                               ADD_RESPONSE(response, buffer_len, "%"PRId64":",
+                               ADD_RESPONSE(response, buffer_len, "%"PRId64"$",
                                                ((int64_t *)array->data)[i]);
                                break;
                        case DATA_TYPE_UINT:
                                for (i = 0; i < array->length - 1; i++)
                                        ADD_RESPONSE(response, buffer_len, "%u,",
                                                        ((u_int32_t *)array->data)[i]);
-                               ADD_RESPONSE(response, buffer_len, "%u:",
+                               ADD_RESPONSE(response, buffer_len, "%u$",
                                                ((u_int32_t *)array->data)[i]);
                                break;
                        case DATA_TYPE_UINT64:
                                for (i = 0; i < array->length - 1; i++)
                                        ADD_RESPONSE(response, buffer_len, "%"PRIu64",",
                                                        ((u_int64_t *)array->data)[i]);
-                               ADD_RESPONSE(response, buffer_len, "%"PRIu64":",
+                               ADD_RESPONSE(response, buffer_len, "%"PRIu64"$",
                                                ((u_int64_t *)array->data)[i]);
                                break;
                        case DATA_TYPE_DOUBLE:
                                for (i = 0; i < array->length - 1; i++)
                                        ADD_RESPONSE(response, buffer_len, "%lf,",
                                                        ((double *)array->data)[i]);
-                               ADD_RESPONSE(response, buffer_len, "%lf:",
+                               ADD_RESPONSE(response, buffer_len, "%lf$",
                                                ((double *)array->data)[i]);
                                break;
                        case DATA_TYPE_STRING:
                                for (i = 0; i < array->length - 1; i++)
                                        ADD_RESPONSE(response, buffer_len, "%s,",
                                                        ((char **)array->data)[i]);
-                               ADD_RESPONSE(response, buffer_len, "%s:",
+                               ADD_RESPONSE(response, buffer_len, "%s$",
                                                ((char **)array->data)[i]);
                                break;
                        default: