From 8ef310a22a54dca7a80947f83f03bc296ab298dd Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Tue, 4 Feb 2020 18:14:54 +0300 Subject: [magi] --- src/request.h | 102 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 59 insertions(+), 43 deletions(-) (limited to 'src/request.h') diff --git a/src/request.h b/src/request.h index be92370..ffa239f 100644 --- a/src/request.h +++ b/src/request.h @@ -27,75 +27,91 @@ * document_uri: {script_name}{path_info} * /bin/script /article/magic */ -struct magi_request { +typedef struct magi_request { /* * * Results * * */ /* All pointers of this section must be valid as 'free' arguments. */ /* Parsed */ - struct magi_cookie_list * cookies; - struct magi_param_list * http_params; /* HTTP Header parameters */ - struct magi_param_list * url_params; /* Urlencoded paramteres from URL */ - struct magi_param_list * params; /* Parameters from 'post' body */ - struct magi_file_list * files; /* 'Post' multipart files */ + magi_cookie_list *cookies; + magi_param_list *http_params; /* HTTP Header parameters */ + magi_param_list *url_params; /* Paramteres from URL */ + magi_param_list *params; /* Parameters from 'post' body */ + magi_file_list *files; /* 'Post' multipart files */ /* Environment Shortcuts */ - char * method; /* REQUEST_METHOD */ - char * uri; /* REQUEST_URI */ - char * document_root; /* DOCUMENT_ROOT */ - char * document_uri; /* DOCUMENT_URI */ - char * script_name; /* SCRIPT_NAME */ - char * script_filename; /* SCRIPT_FILENAME */ - char * remote_addr; /* REMOTE_ADDR */ - char * remote_port; /* REMOTE_PORT */ - char * server_addr; /* SERVER_ADDR */ - char * server_name; /* SERVER_NAME */ + char *method; /* REQUEST_METHOD */ + char *uri; /* REQUEST_URI */ + char *document_root; /* DOCUMENT_ROOT */ + char *document_uri; /* DOCUMENT_URI */ + char *script_name; /* SCRIPT_NAME */ + char *script_filename; /* SCRIPT_FILENAME */ + char *remote_addr; /* REMOTE_ADDR */ + char *remote_port; /* REMOTE_PORT */ + char *server_addr; /* SERVER_ADDR */ + char *server_name; /* SERVER_NAME */ /* server_name can be not a domain name, even if request is done with it. * (Use http_params["HTTP_HOST"] instead.) */ - char * server_port; /* SERVER_PORT */ - char * server_protocol; /* SERVER_PROTOCOL */ - char * server_software; /* SERVER_COFTWARE */ - char * path_info; /* PATH_INFO */ + char *server_port; /* SERVER_PORT */ + char *server_protocol; /* SERVER_PROTOCOL */ + char *server_software; /* SERVER_COFTWARE */ + char *path_info; /* PATH_INFO */ /* Request Error Code */ - enum magi_error error; + magi_error error; /* * * Settings * * */ /* Callback for processing files */ - void (*file_callback)(struct magi_file * file, - char * addon, - int addon_len, - int is_addon_last, - void * userdata); - void * file_callback_userdata; - int file_callback_addon_max; + void (*file_callback)(magi_file *file, + char *addon, + int addon_len, + int is_addon_last, + void *userdata); + void *file_callback_userdata; + int file_callback_addon_max; /* Limits for memory used (null <=> unlimitted) */ int cookies_max; int url_params_max; int http_params_max; int params_max; -}; +} magi_request; /* Setup request with default settings. */ -void magi_request_setup(struct magi_request * request); - -struct magi_tempfiles { - int count; - const char ** param_names; - const char ** locations; - int * maximums; /* Null maximums[i] <=> unlimited tempfiles[i]. */ -}; -void magi_tempfiles_add(struct magi_tempfiles * tmps, - const char * name, - const char * path, - int max); +void magi_request_setup(magi_request *request); + + +/* Destroys request. */ +void magi_request_destroy(magi_request *request); + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Tempfiles Callback + */ +typedef struct magi_tempfile { + const char *param_name; /* Form field name, in which file is expected. */ + const char *location; /* Location to load file in. */ + int maximum; /* Null <=> unlimited. */ +} magi_tempfile; + +typedef struct magi_tempfiles { + int count; + magi_tempfile *tmps; +} magi_tempfiles; + +void magi_tempfiles_add(magi_tempfiles *tmps, + const char *name, + const char *path, + int max); + +void magi_tempfiles_destroy(magi_tempfiles *tmps); + /* Setup request callback with files loaded into corresponding to their * parameter names locations; paths are in magi_tempfiles struct. */ -void magi_request_setup_tempfiles(struct magi_request * request, - struct magi_tempfiles * table); +void magi_request_setup_tempfiles(magi_request *request, + magi_tempfiles *table); /* Destroys request. */ void magi_request_destroy(struct magi_request * request); -- cgit v1.2.3