Pharos
0.7.23
Modern Web Framework & Web App Hosting Service.
Toggle main menu visibility
Loading...
Searching...
No Matches
native_http_request.h
Go to the documentation of this file.
1
/**
2
* @file
3
* @brief Declares the parsed HTTP request record and request parsing helpers.
4
*/
5
6
#ifndef PHAROS_NATIVE_HTTP_REQUEST_H
7
#define PHAROS_NATIVE_HTTP_REQUEST_H
8
9
#include <stddef.h>
10
11
#include "
native_connection.h
"
12
13
/**
14
* @brief Parsed HTTP request fields extracted from a native connection.
15
*/
16
typedef
struct
{
17
char
*
method
;
/**< Request method token such as GET or POST. */
18
char
*
target
;
/**< Raw request target path from the request line. */
19
char
*
cookie
;
/**< Cookie header value, if supplied. */
20
char
*
content_type
;
/**< Content-Type header value or the default form type. */
21
char
*
headers
;
/**< Normalized request headers joined with newlines. */
22
char
*
body
;
/**< Owned request body buffer when the request stays in memory. */
23
char
*
body_file_path
;
/**< Temporary body file path when the request body is streamed to disk. */
24
size_t
body_len
;
/**< Number of bytes stored in body or referenced by body_file_path. */
25
int
is_multipart
;
/**< Non-zero when the request uses multipart form data. */
26
}
HttpRequest
;
27
28
/** @name HTTP request helpers
29
* @{
30
*/
31
/**
32
* @brief Parses an HTTP request from a native connection into a request record.
33
* @param connection Connection supplying request bytes.
34
* @param request Destination request record to populate.
35
* @return 0 on success, or a non-zero native status code on parse or IO failure.
36
*/
37
int
parse_http_request_native
(
NativeConnection
*connection,
HttpRequest
*request);
38
/**
39
* @brief Releases heap-owned fields in a parsed HTTP request record.
40
* @param request Request record to clear.
41
*/
42
void
free_http_request_native
(
HttpRequest
*request);
43
44
45
/** @} */
46
#endif
native_connection.h
Declares the native connection abstraction and transport metadata helpers.
free_http_request_native
void free_http_request_native(HttpRequest *request)
Releases heap-owned fields in a parsed HTTP request record.
Definition
native_http_request.c:33
parse_http_request_native
int parse_http_request_native(NativeConnection *connection, HttpRequest *request)
Parses an HTTP request from a native connection into a request record.
Definition
native_http_request.c:226
HttpRequest
Parsed HTTP request fields extracted from a native connection.
Definition
native_http_request.h:16
HttpRequest::method
char * method
Definition
native_http_request.h:17
HttpRequest::target
char * target
Definition
native_http_request.h:18
HttpRequest::body
char * body
Definition
native_http_request.h:22
HttpRequest::body_len
size_t body_len
Definition
native_http_request.h:24
HttpRequest::body_file_path
char * body_file_path
Definition
native_http_request.h:23
HttpRequest::headers
char * headers
Definition
native_http_request.h:21
HttpRequest::cookie
char * cookie
Definition
native_http_request.h:19
HttpRequest::is_multipart
int is_multipart
Definition
native_http_request.h:25
HttpRequest::content_type
char * content_type
Definition
native_http_request.h:20
NativeConnection
Accepted client connection and its resolved transport metadata.
Definition
native_connection.h:24
src
native_runtime
c
native_http_request.h
Generated by
1.17.0