mirror of https://git.48k.eu/ogserver
rest: fix GET /session payload structure
Split partition data by client instead of a single array with every partition. Old payload structure: { 'sessions': [{'disk': 1, 'partition': 1, 'name': 'unknown'}, {'disk': 1, 'partition': 2, 'name': 'unknown'}, {'disk': 1, 'partition': 1, 'name': 'Ubuntu 22.04.4 LTS 64 bits'}] } New payload structure: { 'sessions': [ {'addr': '1.1.1.1', 'partitions': ['disk': 1, 'partition': 1, 'name': 'Ubuntu 22.04.4 LTS 64 bits']}, {'addr': '1.1.1.2', 'partitions': [{'disk': 1, 'partition': 1, 'name': 'unknown'}, {'disk': 1, 'partition': 2, 'name': 'unknown'}]} ] }master v1.2.5-22
parent
ca3503b716
commit
65b397f59f
24
src/rest.c
24
src/rest.c
|
@ -954,7 +954,7 @@ static int og_json_os_array_get(struct og_dbi *dbi, json_t *array, const char *i
|
|||
static int og_cmd_get_session(json_t *element, struct og_msg_params *params,
|
||||
char *buffer_reply)
|
||||
{
|
||||
json_t *value, *root, *array;
|
||||
json_t *value, *root, *array, *client_data, *partitions;
|
||||
struct og_dbi *dbi;
|
||||
const char *key;
|
||||
int err = 0, i;
|
||||
|
@ -992,11 +992,31 @@ static int og_cmd_get_session(json_t *element, struct og_msg_params *params,
|
|||
}
|
||||
|
||||
for (i = 0; i < params->ips_array_len; i++) {
|
||||
if (og_json_os_array_get(dbi, array, params->ips_array[i]) < 0) {
|
||||
client_data = json_object();
|
||||
if (!client_data) {
|
||||
json_decref(array);
|
||||
og_dbi_close(dbi);
|
||||
return -1;
|
||||
}
|
||||
json_object_set_new(client_data, "addr", json_string(params->ips_array[i]));
|
||||
|
||||
partitions = json_array();
|
||||
if (!partitions) {
|
||||
json_decref(client_data);
|
||||
json_decref(array);
|
||||
og_dbi_close(dbi);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (og_json_os_array_get(dbi, partitions, params->ips_array[i]) < 0) {
|
||||
json_decref(partitions);
|
||||
json_decref(client_data);
|
||||
json_decref(array);
|
||||
og_dbi_close(dbi);
|
||||
return -1;
|
||||
}
|
||||
json_object_set_new(client_data, "partitions", partitions);
|
||||
json_array_append_new(array, client_data);
|
||||
}
|
||||
|
||||
og_dbi_close(dbi);
|
||||
|
|
Loading…
Reference in New Issue