#include "api.h" #include #include "string.h" #include "JSON.h" #include "commands.h" char *cookie_out; void json_parse(request_typDef *json_request, char *json_response, uint16_t json_response_len, char *response_cookie) { json_config_t config; config.json_malloc = malloc; config.json_free = free; json_size_t tokens_count = 256; json_parser_t parser; json_token_t *tokens = config.json_malloc(sizeof(json_token_t) * tokens_count); if(tokens == NULL) return; json_init_parser(&parser, &config); json_parse_tokens(&parser, json_request->json_data, json_request->json_len, tokens, &tokens_count); // tokens_count - возвращается колличество найденных токенов json_tokens_data_t json_token_data = {0}; json_token_data.remote_addr = json_request->remote_addr; json_token_data.json_data = json_request->json_data; json_token_data.tokens = tokens; json_token_data.tokens_count = tokens_count; json_token_data.current_token = 0; json_response_t response = {0}; response.json_data = json_response; response.json_data_length = json_response_len; cookie_out = response_cookie; execute_cmd(&json_token_data, &response, json_request->cookie, cookie_out); config.json_free(tokens); }