source: S-port/trunk/Core/Src/api.c

Last change on this file was 1, checked in by AlexLir, 3 years ago
File size: 1.2 KB
Line 
1#include "api.h"
2#include <stdlib.h>
3#include "string.h"
4#include "JSON.h"
5#include "commands.h"
6
7char *cookie_out;
8
9void json_parse(request_typDef *json_request, char *json_response, uint16_t json_response_len, char *response_cookie)
10{
11 json_config_t config;
12 config.json_malloc = malloc;
13 config.json_free = free;
14
15 json_size_t tokens_count = 256;
16 json_parser_t parser;
17 json_token_t *tokens = config.json_malloc(sizeof(json_token_t) * tokens_count);
18 if(tokens == NULL) return;
19
20 json_init_parser(&parser, &config);
21 json_parse_tokens(&parser, json_request->json_data, json_request->json_len, tokens, &tokens_count); // tokens_count - âîçâðàùàåòñÿ êîëëè÷åñòâî íàéäåííûõ òîêåíîâ
22
23 json_tokens_data_t json_token_data = {0};
24 json_token_data.remote_addr = json_request->remote_addr;
25 json_token_data.json_data = json_request->json_data;
26 json_token_data.tokens = tokens;
27 json_token_data.tokens_count = tokens_count;
28 json_token_data.current_token = 0;
29
30 json_response_t response = {0};
31 response.json_data = json_response;
32 response.json_data_length = json_response_len;
33
34 cookie_out = response_cookie;
35 execute_cmd(&json_token_data, &response, json_request->cookie, cookie_out);
36 config.json_free(tokens);
37}
Note: See TracBrowser for help on using the repository browser.