|
int | ulfius_init_request (struct _u_request *request) |
|
int | ulfius_clean_request (struct _u_request *request) |
|
int | ulfius_clean_request_full (struct _u_request *request) |
|
int | ulfius_copy_request (struct _u_request *dest, const struct _u_request *source) |
|
int | ulfius_set_request_properties (struct _u_request *request,...) |
|
struct _u_request * | ulfius_duplicate_request (const struct _u_request *request) |
|
char * | ulfius_export_request_http (const struct _u_request *request) |
|
int | ulfius_init_response (struct _u_response *response) |
|
int | ulfius_clean_response (struct _u_response *response) |
|
int | ulfius_clean_response_full (struct _u_response *response) |
|
int | ulfius_copy_response (struct _u_response *dest, const struct _u_response *source) |
|
int | ulfius_clean_cookie (struct _u_cookie *cookie) |
|
int | ulfius_copy_cookie (struct _u_cookie *dest, const struct _u_cookie *source) |
|
struct _u_response * | ulfius_duplicate_response (const struct _u_response *response) |
|
int | ulfius_set_response_properties (struct _u_response *response,...) |
|
int | ulfius_set_response_shared_data (struct _u_response *response, void *shared_data, void(*free_shared_data)(void *shared_data)) |
|
char * | ulfius_export_response_http (const struct _u_response *response) |
|
json_t * | ulfius_get_json_body_request (const struct _u_request *request, json_error_t *json_error) |
|
int | ulfius_set_json_body_request (struct _u_request *request, json_t *j_body) |
|
json_t * | ulfius_get_json_body_response (struct _u_response *response, json_error_t *json_error) |
|
int | ulfius_set_json_body_response (struct _u_response *response, const unsigned int status, const json_t *j_body) |
|
struct _u_request, struct _u_response and struct _u_cookie management functions
◆ ulfius_init_request()
int ulfius_init_request |
( |
struct _u_request * |
request | ) |
|
ulfius_init_request Initialize a request structure by allocating inner elements
- Parameters
-
request | the request to initialize |
- Returns
- U_OK on success
ulfius_init_request Initialize a request structure by allocating inner elements return U_OK on success
◆ ulfius_clean_request()
int ulfius_clean_request |
( |
struct _u_request * |
request | ) |
|
ulfius_clean_request clean the specified request's inner elements user must free the parent pointer if needed after clean or use ulfius_clean_request_full
- Parameters
-
request | the request to cleanup |
- Returns
- U_OK on success
ulfius_clean_request clean the specified request's inner elements user must free the parent pointer if needed after clean or use ulfius_clean_request_full return U_OK on success
◆ ulfius_clean_request_full()
int ulfius_clean_request_full |
( |
struct _u_request * |
request | ) |
|
ulfius_clean_request_full clean the specified request and all its elements
- Parameters
-
request | the request to cleanup |
- Returns
- U_OK on success
ulfius_clean_request_full clean the specified request and all its elements return U_OK on success
◆ ulfius_copy_request()
ulfius_copy_request Copy the source request elements into the dest request
- Parameters
-
dest | the request to receive the copied data |
source | the source request to copy |
- Returns
- U_OK on success
ulfius_copy_request Copy the source request elements into the dest request return U_OK on success
◆ ulfius_set_request_properties()
int ulfius_set_request_properties |
( |
struct _u_request * |
request, |
|
|
|
... |
|
) |
| |
ulfius_set_request_properties Set a list of properties to a request return U_OK on success
◆ ulfius_duplicate_request()
create a new request based on the source elements returned value must be u_free'd after use
- Parameters
-
request | the request to duplicate |
- Returns
- a heap-allocated request
create a new request based on the source elements returned value must be free'd after use
◆ ulfius_export_request_http()
char* ulfius_export_request_http |
( |
const struct _u_request * |
request | ) |
|
Exports a struct _u_request * into a readable HTTP request This function is for debug or educational purpose And the output is probably incomplete for some edge cases So don't think this is the right way. Example:
PUT /api/write HTTP/1.1
Host: domain.tld
Accept: gzip
Content-Type: application/x-www-form-urlencoded
Content-length: 432
key1=value1&key2=value2[...]
- Parameters
-
request | the request to export returned value must be u_free'd after use |
◆ ulfius_init_response()
int ulfius_init_response |
( |
struct _u_response * |
response | ) |
|
Initialize a response structure by allocating inner elements
- Parameters
-
response | the response to initialize |
- Returns
- U_OK on success
◆ ulfius_clean_response()
int ulfius_clean_response |
( |
struct _u_response * |
response | ) |
|
ulfius_clean_response clean the specified response's inner elements user must free the parent pointer if needed after clean or use ulfius_clean_response_full
- Parameters
-
response | the response to cleanup |
- Returns
- U_OK on success
◆ ulfius_clean_response_full()
int ulfius_clean_response_full |
( |
struct _u_response * |
response | ) |
|
clean the specified response and all its elements
- Parameters
-
response | the response to cleanup |
- Returns
- U_OK on success
◆ ulfius_copy_response()
Copy the source response elements into the dest response
- Parameters
-
dest | the response to receive the copied data |
source | the source response to copy |
- Returns
- U_OK on success
◆ ulfius_clean_cookie()
int ulfius_clean_cookie |
( |
struct _u_cookie * |
cookie | ) |
|
ulfius_clean_cookie clean the cookie's elements
- Parameters
-
cookie | the cookie structure to cleanup |
- Returns
- U_OK on success
◆ ulfius_copy_cookie()
Copy the cookie source elements into dest elements
- Parameters
-
dest | the cookie to receive the copied data |
source | the cookie response to copy |
- Returns
- U_OK on success
◆ ulfius_duplicate_response()
create a new response based on the source elements return value must be cleaned after use
- Parameters
-
response | the response to duplicate |
- Returns
- a heap-allocated response
◆ ulfius_set_response_properties()
int ulfius_set_response_properties |
( |
struct _u_response * |
response, |
|
|
|
... |
|
) |
| |
Set a list of properties to a response
- Parameters
-
response | the response to set values to |
- Returns
- U_OK on success
◆ ulfius_set_response_shared_data()
int ulfius_set_response_shared_data |
( |
struct _u_response * |
response, |
|
|
void * |
shared_data, |
|
|
void(*)(void *shared_data) |
free_shared_data |
|
) |
| |
Adds a shared_data pointer to the response and the function to free the shared_data at the end of the callback list
- Parameters
-
response | the response to set values to |
shared_data | a pointer that will be transmitted to every callback |
free_shared_data | a pointer to a function that will free shared_data at the end of the callback list |
- Returns
- U_OK on success
◆ ulfius_export_response_http()
char* ulfius_export_response_http |
( |
const struct _u_response * |
response | ) |
|
Exports a struct _u_response * into a readable HTTP response This function is for debug or educational purpose And the output is probably incomplete for some edge cases So don't think this is the right way. Example:
HTTP/1.1 200 OK
Content-type: text/html; charset=utf-8
Set-Cookie: cookieXyz1234...
Content-length: 1234
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h2>Welcome</h2>
....
- Parameters
-
response | the response to export returned value must be u_free'd after use |
◆ ulfius_get_json_body_request()
json_t* ulfius_get_json_body_request |
( |
const struct _u_request * |
request, |
|
|
json_error_t * |
json_error |
|
) |
| |
ulfius_get_json_body_request Get JSON structure from the request body if the request is valid In case of an error in getting or parsing JSON data in the request, the structure json_error_t * json_error will be filled with an error message if json_error is not NULL
- Parameters
-
request | the request to retrieve the JSON data |
json_error | a json_error_t reference that will contain decoding errors if any, may be NULL |
- Returns
- a json_t * containing the JSON decoded, NULL on error
ulfius_get_json_body_request Get JSON structure from the request body if the request is valid request: struct _u_request used json_error: structure to store json_error_t if specified
◆ ulfius_set_json_body_request()
int ulfius_set_json_body_request |
( |
struct _u_request * |
request, |
|
|
json_t * |
j_body |
|
) |
| |
ulfius_set_json_body_request Add a json_t j_body to a request
- Parameters
-
request | the request to retrieve the JSON data |
j_body | a json_t to stringify in the body |
- Returns
- U_OK on success
ulfius_set_json_body_request Add a json_t j_body to a response return U_OK on success
◆ ulfius_get_json_body_response()
json_t* ulfius_get_json_body_response |
( |
struct _u_response * |
response, |
|
|
json_error_t * |
json_error |
|
) |
| |
ulfius_get_json_body_response Get JSON structure from the response body if the response is valid In case of an error in getting or parsing JSON data in the response, the structure json_error_t * json_error will be filled with an error message if json_error is not NULL
- Parameters
-
response | the response to retrieve the JSON data |
json_error | a json_error_t reference that will contain decoding errors if any, may be NULL |
- Returns
- a json_t * containing the JSON decoded, NULL on error
ulfius_get_json_body_response Get JSON structure from the request body if the request is valid request: struct _u_request used json_error: structure to store json_error_t if specified
◆ ulfius_set_json_body_response()
int ulfius_set_json_body_response |
( |
struct _u_response * |
response, |
|
|
const unsigned int |
status, |
|
|
const json_t * |
j_body |
|
) |
| |
ulfius_set_json_body_response Add a json_t j_body to a response
- Parameters
-
response | the response to retrieve the JSON data |
status | the HTTP status for the response |
j_body | a json_t to stringify in the body |
- Returns
- U_OK on success
ulfius_set_json_body_response Add a json_t j_body to a response return U_OK on success