aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2020-07-13 10:21:47 +0300
committerAleksey Veresov <aleksey@veresov.pro>2020-07-13 10:21:47 +0300
commit4d77e4bb69a47daf23ad4a902b300bf1aa7d5597 (patch)
treeb3c21c9bb01cf84d07e3b9e51b707e24e2afabd2 /include
parent915f37b5ad202dfeb51999faba5a2849318ebea2 (diff)
downloadmagi-4d77e4bb69a47daf23ad4a902b300bf1aa7d5597.tar
magi-4d77e4bb69a47daf23ad4a902b300bf1aa7d5597.tar.xz
magi-4d77e4bb69a47daf23ad4a902b300bf1aa7d5597.zip
typedef struct removed to support C++98.
Diffstat (limited to 'include')
-rw-r--r--include/magi/cookie.h19
-rw-r--r--include/magi/error.h8
-rw-r--r--include/magi/file.h40
-rw-r--r--include/magi/loadfiles.h25
-rw-r--r--include/magi/param.h21
-rw-r--r--include/magi/parse.h9
-rw-r--r--include/magi/request.h43
-rw-r--r--include/magi/response.h38
8 files changed, 110 insertions, 93 deletions
diff --git a/include/magi/cookie.h b/include/magi/cookie.h
index 7573747..68cbe3f 100644
--- a/include/magi/cookie.h
+++ b/include/magi/cookie.h
@@ -5,32 +5,33 @@
*/
-typedef struct magi_cookie {
+struct magi_cookie {
char *name; /* Cookie name. */
char *data; /* Cookie value. */
char *path; /* Path on which cookie is set. Without '/' at the end. */
char *domain; /* Domain in wich cookie is set.
* With dot at the begining. */
char *max_age; /* In seconds until discard (response only). */
-} magi_cookie;
+};
/* HTTP cookies collection, implemented as a linked list. */
-typedef struct magi_cookies {
+struct magi_cookies {
struct magi_cookies *next; /* Pointer to next cookies. */
- magi_cookie item; /* Cookie on top. */
-} magi_cookies;
+ struct magi_cookie item; /* Cookie on top. */
+};
/* Free memory used by cookies. */
-void magi_cookies_free(magi_cookies *cookies);
+void magi_cookies_free(struct magi_cookies *cookies);
/* Add newitem onto top of cookies. */
-void magi_cookies_add(magi_cookies **cookies, magi_cookie *newitem);
+void magi_cookies_add(struct magi_cookies **cookies,
+ struct magi_cookie *newitem);
/* Get first cookie with given name, null if no such cookie.
* First cookie is the most accurate in terms of domain and path. */
-const magi_cookie *magi_cookies_get(const magi_cookies *cookies,
- const char *name);
+const struct magi_cookie *magi_cookies_get(const struct magi_cookies *cookies,
+ const char *name);
#endif
diff --git a/include/magi/error.h b/include/magi/error.h
index 6f64228..c11ed51 100644
--- a/include/magi/error.h
+++ b/include/magi/error.h
@@ -6,7 +6,7 @@
/* Magi error codes. */
-typedef enum magi_error {
+enum magi_error {
magi_error_none = 0, /* No error, all is ok. */
magi_error_nobound, /* No boundary provided for multipart/form-data. */
magi_error_unknown, /* Unknown Content Type. */
@@ -16,14 +16,14 @@ typedef enum magi_error {
magi_error_urlenc, /* Wrong url encoding. */
magi_error_multipart, /* Malformed multipart/form-data. */
magi_error_limit /* One of specified limits reached. */
-} magi_error;
+};
/* Get description message of given error. */
-const char *magi_error_message(magi_error error);
+const char *magi_error_message(enum magi_error error);
/* Response default error page for given error. */
-void magi_error_response(magi_error error);
+void magi_error_response(enum magi_error error);
#endif
diff --git a/include/magi/file.h b/include/magi/file.h
index d976194..615d8b7 100644
--- a/include/magi/file.h
+++ b/include/magi/file.h
@@ -5,46 +5,48 @@
#include "param.h"
-typedef struct magi_file {
- char *field; /* Name of form field. */
- char *filename; /* File name on user's computer. */
- magi_params *params; /* Multipart params (e.g. type). */
-} magi_file;
+struct magi_file {
+ char *field; /* Name of form field. */
+ char *filename; /* File name on user's computer. */
+ struct magi_params *params; /* Multipart params (e.g. type). */
+};
/* Form files collection, implemented as a linked list. */
-typedef struct magi_files {
+struct magi_files {
struct magi_files *next; /* Pointer to next files. */
- magi_file item; /* File on top. */
-} magi_files;
+ struct magi_file item; /* File on top. */
+};
/* Free memory used by files. */
-void magi_files_free(magi_files *files);
+void magi_files_free(struct magi_files *files);
/* Add newitem onto top of files. */
-void magi_files_add(magi_files **files, magi_file *newitem);
+void magi_files_add(struct magi_files **files,
+ struct magi_file *newitem);
/* Get first from top of files file with name, null if no such file. */
-const magi_file *magi_files_get(const magi_files *files, const char *name);
+const struct magi_file *magi_files_get(const struct magi_files *files,
+ const char *name);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Callback to load files while analysing request.
* addon_len is not null if something to add is in addon
- * and null if file_to_add_into is ended.
+ * and null if file is ended.
* newfile flag is setted up in the beginning of new file.
* Files are passed sequentialy, one by one. */
-typedef void (*magi_file_callback_act)(void *userdata,
- int newfile,
- magi_file *file_to_add_into,
- char *addon,
- int addon_len);
+typedef void (*magi_file_callback_act)(void *userdata,
+ int newfile,
+ struct magi_file *file,
+ char *addon,
+ int addon_len);
-typedef struct magi_file_callback {
+struct magi_file_callback {
magi_file_callback_act act;
void *userdata;
int addon_max;
-} magi_file_callback;
+};
#endif
diff --git a/include/magi/loadfiles.h b/include/magi/loadfiles.h
index d6cdaeb..9d7978f 100644
--- a/include/magi/loadfiles.h
+++ b/include/magi/loadfiles.h
@@ -12,35 +12,36 @@
/* Rule of loading single file.
* There is no need to form or edit it directly. */
-typedef struct magi_loadfile {
+struct magi_loadfile {
const char *name; /* Form field to load file from. */
const char *path; /* Path to load file in. */
int max; /* Limit in bytes. Null means unlimited. */
-} magi_loadfile;
+};
/* Table of rules for loading files.
* Set count and files as null to initialize. */
-typedef struct magi_loadfiles {
- int count; /* Size of files array.*/
- magi_loadfile *files; /* Dynamic array of rules to load files. */
-} magi_loadfiles;
+struct magi_loadfiles {
+ int count; /* Size of files array.*/
+ struct magi_loadfile *files; /* Dynamic array of rules to load files. */
+};
/* Free memory used by table. Request using table will become invalid. */
-void magi_loadfiles_free(magi_loadfiles *table);
+void magi_loadfiles_free(struct magi_loadfiles *table);
/* Add entity into table.
* Specify form field to load file from with name,
* wnated loaction to load file with path,
* and file size limit in bytes with max (pass null to unlimit). */
-void magi_loadfiles_add(magi_loadfiles *table,
- const char *name,
- const char *path,
- int max);
+void magi_loadfiles_add(struct magi_loadfiles *table,
+ const char *name,
+ const char *path,
+ int max);
/* Setup request to use loadfiles callback with table. */
-void magi_loadfiles_set(magi_request *request, magi_loadfiles *table);
+void magi_loadfiles_set(struct magi_request *request,
+ struct magi_loadfiles *table);
#endif
diff --git a/include/magi/param.h b/include/magi/param.h
index c0879a9..44ea384 100644
--- a/include/magi/param.h
+++ b/include/magi/param.h
@@ -4,32 +4,35 @@
*/
-typedef struct magi_param {
+struct magi_param {
char *name; /* Cannot be null. */
char *data; /* Cannot be null. */
-} magi_param;
+};
/* Parameters collection, implemented as a linked list. */
-typedef struct magi_params {
+struct magi_params {
struct magi_params *next; /* Pointer to next parameters. */
- magi_param item; /* Parameter on top. */
-} magi_params;
+ struct magi_param item; /* Parameter on top. */
+};
/* Free memory used by params. */
-void magi_params_free(magi_params *params);
+void magi_params_free(struct magi_params *params);
/* Add newitem onto top of params. */
-void magi_params_add(magi_params **params, magi_param *newitem);
+void magi_params_add(struct magi_params **params,
+ struct magi_param *newitem);
/* Set newitem in params.
* If param with name of newitem is in params it will be replaced with newitem,
* otherwise newitem will be added into the end of params. */
-void magi_params_set(magi_params **params, magi_param *newitem);
+void magi_params_set(struct magi_params **params,
+ struct magi_param *newitem);
/* Get data of the first from top of params parameter with name,
* null if no such parameter. */
-char *magi_params_get(const magi_params *params, const char *name);
+char *magi_params_get(const struct magi_params *params,
+ const char *name);
#endif
diff --git a/include/magi/parse.h b/include/magi/parse.h
index a71018a..502af6e 100644
--- a/include/magi/parse.h
+++ b/include/magi/parse.h
@@ -5,14 +5,15 @@
#include "request.h"
-/* Analyses non-post part of request from environment. True if ok. */
-int magi_parse_head(magi_request *request);
+/* Analyses non-post part of request (everything except body and files)
+ * from environment. True if ok. */
+int magi_parse_head(struct magi_request *request);
/* Complete request with post body from standard input. True if ok. */
-int magi_parse_body(magi_request *request);
+int magi_parse_body(struct magi_request *request);
/* Shortcut for analysing both head and body of request. True if ok. */
-int magi_parse(magi_request *request);
+int magi_parse(struct magi_request *request);
#endif
diff --git a/include/magi/request.h b/include/magi/request.h
index 0ec17e8..fe0f745 100644
--- a/include/magi/request.h
+++ b/include/magi/request.h
@@ -17,22 +17,22 @@
/* Limits on possibly enormous structures. Null means unlimited. */
-typedef struct magi_request_limits {
+struct magi_request_limits {
int cookies;
int params_meta;
int params_head;
int params_body;
int read_buffer;
-} magi_request_limits;
+};
-typedef struct magi_request {
- magi_error error;
+struct magi_request {
+ enum magi_error error;
- magi_cookies *cookies; /* Passed HTTP cookies. */
- magi_params *meta; /* Request parameters. */
- magi_params *head; /* Form field values from URL. */
- magi_params *body; /* Form field values from body. */
- magi_files *files; /* Form field files metadatas. */
+ struct magi_cookies *cookies; /* Passed HTTP cookies. */
+ struct magi_params *meta; /* Request parameters. */
+ struct magi_params *head; /* Form field values from URL. */
+ struct magi_params *body; /* Form field values from body. */
+ struct magi_files *files; /* Form field files metadatas. */
char *document_root; /* Server's document root (e.g. /var/www/htdocs). */
char *method; /* Request method (GET, HEAD, POST, etc...). */
@@ -43,33 +43,34 @@ typedef struct magi_request {
char *path; /* Path requested for the script (e.g. /login). */
/* URL has form 'http[s]://{host}:{port}{script}{path}'. */
- magi_file_callback callback; /* Callback to actually load files. */
- magi_request_limits limits;
-} magi_request;
+ struct magi_file_callback callback; /* Callback to load files. */
+ struct magi_request_limits limits;
+};
/* Request initialiser, setup defaults. */
-void magi_request_init(magi_request *r);
+void magi_request_init(struct magi_request *r);
/* Free memory used by request. */
-void magi_request_free(magi_request *r);
+void magi_request_free(struct magi_request *r);
/* Get value of meta-param with name. */
-char *magi_request_meta(const magi_request *r, const char *name);
+char *magi_request_meta(const struct magi_request *r, const char *name);
/* Get value of form field param (prioritising body) with name. */
-char *magi_request_param(const magi_request *r, const char *name);
+char *magi_request_param(const struct magi_request *r, const char *name);
/* Get value of form field param with name from url. */
-char *magi_request_urlparam(const magi_request *r, const char *name);
+char *magi_request_urlparam(const struct magi_request *r, const char *name);
/* Get metadata structure of file from file field with name. */
-const magi_file *magi_request_file(const magi_request *r, const char *name);
+const struct magi_file *magi_request_file(const struct magi_request *r,
+ const char *name);
/* Get value of cookie with name. */
-char *magi_request_cookie(const magi_request *r, const char *name);
+char *magi_request_cookie(const struct magi_request *r, const char *name);
/* Get cookie with name. */
-const magi_cookie *magi_request_cookie_complex(const magi_request *r,
- const char *name);
+const struct magi_cookie *
+magi_request_cookie_complex(const struct magi_request *r, const char *name);
#endif
diff --git a/include/magi/response.h b/include/magi/response.h
index c38e3f9..3ef053a 100644
--- a/include/magi/response.h
+++ b/include/magi/response.h
@@ -12,41 +12,49 @@
/* Response headers as three sequential groups. */
-typedef struct magi_response {
- magi_params *head_response;
- magi_params *head_general;
- magi_params *head_entity;
-} magi_response;
+struct magi_response {
+ struct magi_params *head_response;
+ struct magi_params *head_general;
+ struct magi_params *head_entity;
+};
/* Response initialiser, setup defaults. */
-void magi_response_init(magi_response *r);
+void magi_response_init(struct magi_response *r);
/* Send response headers. */
-void magi_response_send(magi_response *r);
+void magi_response_send(struct magi_response *r);
/* Free memory used by response headers. */
-void magi_response_free(magi_response *r);
+void magi_response_free(struct magi_response *r);
/* Just response defaults. (text/html, 200 Ok) */
void magi_response_default();
/* Change resposne status header. */
-void magi_response_status(magi_response *r, int code, const char *description);
+void magi_response_status(struct magi_response *r,
+ int code,
+ const char *description);
/* Add cookie to response. */
-void magi_response_cookie(magi_response *r, const char *n, const char *d);
+void magi_response_cookie(struct magi_response *r,
+ const char *n,
+ const char *d);
/* Add cookie with additional information to response. */
-void magi_response_cookie_complex(magi_response *r, magi_cookie *c);
+void magi_response_cookie_complex(struct magi_response *r,
+ struct magi_cookie *c);
/* Add request to discard cookie to response. */
-void magi_response_cookie_discard(magi_response *r, const char *name);
+void magi_response_cookie_discard(struct magi_response *r,
+ const char *name);
/* Just add some general custom header. */
-void magi_response_header(magi_response *r, const char *n, const char *d);
+void magi_response_header(struct magi_response *r,
+ const char *n,
+ const char *d);
/* Change Content-Length header. */
-void magi_response_content_length(magi_response *r, int length);
+void magi_response_content_length(struct magi_response *r, int length);
/* Change Content-Type header. */
-void magi_response_content_type(magi_response *r, const char *type);
+void magi_response_content_type(struct magi_response *r, const char *type);
#endif