aboutsummaryrefslogtreecommitdiff
path: root/src/request.c
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2019-11-22 18:55:54 +0300
committerAleksey Veresov <aleksey@veresov.pro>2019-11-22 18:55:54 +0300
commit88081d9a4376b1ee4feed3bc843c46096e087b1e (patch)
tree5780b195f16975e890a8a98b0dc17d6ce2da3001 /src/request.c
parent0f6943feff48e92b071726abcf83070d8a529a41 (diff)
downloadmagi-88081d9a4376b1ee4feed3bc843c46096e087b1e.tar
magi-88081d9a4376b1ee4feed3bc843c46096e087b1e.tar.xz
magi-88081d9a4376b1ee4feed3bc843c46096e087b1e.zip
.
Diffstat (limited to 'src/request.c')
-rw-r--r--src/request.c86
1 files changed, 65 insertions, 21 deletions
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 <stdlib.h>
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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);
}
}