rest: use JSON_ENSURE_ASCII in json dumps

escape non-ascii characters in json otherwise ogclient len() and Content-Length:
report a mismatch when utf-8 representation is used in any of the string fields.
For consistency, enable this flag too for json dumps that are consumed by ogcp
and ogcli.
master
OpenGnSys Support Team 2024-08-06 16:18:17 +02:00
parent a675dbb083
commit 6bc71b201d
1 changed files with 22 additions and 22 deletions

View File

@ -316,7 +316,7 @@ int og_send_request(enum og_rest_method method, enum og_cmd_type type,
else
content_length = json_dumpb(data, content,
OG_MSG_REQUEST_MAXLEN - 700,
JSON_COMPACT);
JSON_COMPACT | JSON_ENSURE_ASCII);
uri = og_cmd_to_uri[type];
@ -528,7 +528,7 @@ static int og_cmd_get_clients(json_t *element, struct og_msg_params *params,
return -1;
}
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -822,7 +822,7 @@ static int og_cmd_run_get(json_t *element, struct og_msg_params *params,
if (!root)
return -1;
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -920,7 +920,7 @@ static int og_cmd_shell_list(char *buffer_reply)
json_object_set_new(root, "scripts", script_arr);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
og_script_list_free(&script_list);
json_decref(root);
return -1;
@ -1069,7 +1069,7 @@ static int og_cmd_get_session(json_t *element, struct og_msg_params *params,
json_object_set_new(root, "sessions", array);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -1235,7 +1235,7 @@ static int og_cmd_get_modes(json_t *element, struct og_msg_params *params,
og_boot_mode_free(&boot_mode_list);
json_object_set_new(root, "modes", modes);
ret = json_dump_callback(root, og_json_dump_clients, &og_buffer, 0);
ret = json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII);
json_decref(root);
return ret;
@ -1782,7 +1782,7 @@ static int og_cmd_get_client_setup(json_t *element,
dbi_result_free(result);
og_dbi_close(dbi);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -2022,7 +2022,7 @@ static int og_cmd_get_center_info(json_t *element,
json_object_set_new(root, "name",
json_string(center.name));
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -2102,7 +2102,7 @@ static int og_cmd_get_client_info(json_t *element,
json_object_set_new(root, "id", json_integer(computer.id));
json_object_set_new(root, "ip", json_string(computer.ip));
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -3130,7 +3130,7 @@ static int og_cmd_get_room_info(json_t *element,
json_object_set_new(root, "gateway", json_string(room.gateway));
json_object_set_new(root, "netmask", json_string(room.netmask));
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -3272,7 +3272,7 @@ static int og_cmd_get_hardware(json_t *element, struct og_msg_params *params,
json_object_set_new(root, "hardware", array);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -3403,7 +3403,7 @@ static int og_cmd_get_software(json_t *element, struct og_msg_params *params,
}
json_object_set_new(root, "software", software);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -3453,7 +3453,7 @@ static const int og_cmd_get_repositories(char *buffer_reply)
root = json_object();
json_object_set_new(root, "repositories", repositories);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -3616,7 +3616,7 @@ static int og_cmd_images(char *buffer_reply)
json_object_set_new(root, "disk", disk_json);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -4141,7 +4141,7 @@ static int og_cmd_image_scope_list(json_t *element,
if (!scope_image)
return -1;
if (json_dump_callback(scope_image, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(scope_image, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(scope_image);
return -1;
}
@ -4288,7 +4288,7 @@ static int og_cmd_cache_list(json_t *element, struct og_msg_params *params,
json_object_set_new(root, "clients", clients);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -5763,7 +5763,7 @@ static int og_cmd_scope_get(json_t *element, struct og_msg_params *params,
og_dbi_close(dbi);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -6336,7 +6336,7 @@ static int og_cmd_schedule_get(json_t *element, struct og_msg_params *params,
if (err >= 0)
err = json_dump_callback(schedule_root, og_json_dump_clients,
&og_buffer, 0);
&og_buffer, JSON_ENSURE_ASCII);
json_decref(schedule_root);
@ -6360,7 +6360,7 @@ static int og_cmd_oglive_list(char *buffer_reply)
return -1;
}
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}
@ -7757,7 +7757,7 @@ static int og_cmd_get_servers(char *buffer_reply)
dbi_result_free(result);
og_dbi_close(dbi);
ret = json_dump_callback(root, og_json_dump_clients, &og_buffer, 0);
ret = json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII);
json_decref(root);
return ret;
@ -7849,7 +7849,7 @@ static int og_cmd_post_server(json_t *element,
}
id = dbi_conn_sequence_last(dbi->conn, NULL);
json_object_set_new(root, "id", json_integer(id));
ret = json_dump_callback(root, og_json_dump_clients, &og_buffer, 0);
ret = json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII);
json_decref(root);
dbi_result_free(result);
@ -8058,7 +8058,7 @@ static int og_cmd_get_server_stats(char *buffer_reply)
json_object_set_new(swap, "free", json_integer(stats.freeswap));
json_object_set_new(root, "swap", swap);
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, 0)) {
if (json_dump_callback(root, og_json_dump_clients, &og_buffer, JSON_ENSURE_ASCII)) {
json_decref(root);
return -1;
}