From 88081d9a4376b1ee4feed3bc843c46096e087b1e Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Fri, 22 Nov 2019 18:55:54 +0300 Subject: . --- src/request.c | 86 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 21 deletions(-) (limited to 'src/request.c') diff --git a/src/request.c b/src/request.c index 73c4730..2d9625e 100644 --- a/src/request.c +++ b/src/request.c @@ -1,35 +1,79 @@ #include "request.h" #include "cookie.h" -#include "field.h" +#include "file.h" #include "param.h" #include -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Common Request Handling - */ +void magi_request_setup(struct magi_request * request) +{ + if (request) { + request->file_callback = 0; + request->file_callback_userdata = 0; + request->file_callback_addon_len_max = 64; + request->max_cookies_size = 0; + request->max_http_params_size = 0; + request->max_params_size = 0; + } +} + + +static void request_free(struct magi_request * request) +{ + free(request->cookies); + free(request->http_params); + free(request->url_params); + free(request->params); + free(request->files); + free(request->method); + free(request->uri); + free(request->document_root); + free(request->document_uri); + free(request->script_name); + free(request->script_filename); + free(request->remote_addr); + free(request->remote_port); + free(request->server_addr); + free(request->server_name); + free(request->server_port); + free(request->server_protocol); + free(request->server_software); + free(request->path_info); +} + +void magi_request_annul(struct magi_request * request) +{ + request->cookies = 0; + request->http_params = 0; + request->url_params = 0; + request->params = 0; + request->files = 0; + request->method = 0; + request->uri = 0; + request->document_root = 0; + request->document_uri = 0; + request->script_name = 0; + request->script_filename = 0; + request->remote_addr = 0; + request->remote_port = 0; + request->server_addr = 0; + request->server_name = 0; + request->server_port = 0; + request->server_protocol = 0; + request->server_software = 0; + request->path_info = 0; +} + void magi_request_destroy(struct magi_request * request) { if (request) { - magi_field_list_destroy(request->fields); magi_cookie_list_destroy(request->cookies); - free(request->fields); - free(request->cookies); - free(request->method); - free(request->uri); - free(request->document_root); - free(request->document_uri); - free(request->script_name); - free(request->script_filename); - free(request->remote_addr); - free(request->remote_port); - free(request->server_addr); - free(request->server_name); - free(request->server_port); - free(request->server_protocol); - free(request->server_software); magi_param_list_destroy(request->http_params); - free(request->http_params); + magi_param_list_destroy(request->url_params); + magi_param_list_destroy(request->params); + magi_file_list_destroy(request->files); + request_free(request); + request_annul(request); } } -- cgit v1.2.3