From 9e34d4f3175666353518f786811a7d5ce40c756e Mon Sep 17 00:00:00 2001 From: Dongwoo Lee Date: Tue, 29 Mar 2022 14:24:47 +0900 Subject: [PATCH] monitor: Change delimiter for request/response tokenizing Since JSON format use character ':' as its internal representation, delimiter of API tokenizing is change into '$'. Change-Id: I0705eeb4a860cd279e9ee7b1ab62db3318786fc6 Signed-off-by: Dongwoo Lee --- lib/tmonitor/tmonitor.c | 58 +++++++++++++++++++++---------------------- src/monitor/request-handler.c | 50 ++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/lib/tmonitor/tmonitor.c b/lib/tmonitor/tmonitor.c index d671adf..0d2aacc 100644 --- a/lib/tmonitor/tmonitor.c +++ b/lib/tmonitor/tmonitor.c @@ -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; diff --git a/src/monitor/request-handler.c b/src/monitor/request-handler.c index 9d8a224..3cb97ca 100644 --- a/src/monitor/request-handler.c +++ b/src/monitor/request-handler.c @@ -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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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: * - */ - 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 * - */ - 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: -- 2.7.4