Browse Source

Fix json parsing in api.c

nfactor-troky
Con Kolivas 11 years ago committed by Noel Maersk
parent
commit
65d9136dd5
  1. 17
      api.c

17
api.c

@ -3673,7 +3673,7 @@ void api(int api_thr_id) @@ -3673,7 +3673,7 @@ void api(int api_thr_id)
bool addrok;
char group;
json_error_t json_err;
json_t *json_config;
json_t *json_config = NULL;
json_t *json_val;
bool isjson;
bool did;
@ -3848,21 +3848,18 @@ void api(int api_thr_id) @@ -3848,21 +3848,18 @@ void api(int api_thr_id)
message(io_data, MSG_INVJSON, 0, NULL, isjson);
send_result(io_data, c, isjson);
did = true;
}
else {
} else {
json_val = json_object_get(json_config, JSON_COMMAND);
if (json_val == NULL) {
message(io_data, MSG_MISCMD, 0, NULL, isjson);
send_result(io_data, c, isjson);
did = true;
}
else {
} else {
if (!json_is_string(json_val)) {
message(io_data, MSG_INVCMD, 0, NULL, isjson);
send_result(io_data, c, isjson);
did = true;
}
else {
} else {
cmd = (char *)json_string_value(json_val);
json_val = json_object_get(json_config, JSON_PARAMETER);
if (json_is_string(json_val))
@ -3876,11 +3873,10 @@ void api(int api_thr_id) @@ -3876,11 +3873,10 @@ void api(int api_thr_id)
}
}
}
json_decref(json_config);
}
}
if (!did)
if (!did) {
for (i = 0; cmds[i].name != NULL; i++) {
if (strcmp(cmd, cmds[i].name) == 0) {
sprintf(cmdbuf, "|%s|", cmd);
@ -3896,11 +3892,14 @@ void api(int api_thr_id) @@ -3896,11 +3892,14 @@ void api(int api_thr_id)
break;
}
}
}
if (!did) {
message(io_data, MSG_INVCMD, 0, NULL, isjson);
send_result(io_data, c, isjson);
}
if (json_is_object(json_config))
json_decref(json_config);
}
}
CLOSESOCKET(c);

Loading…
Cancel
Save