24 #define UNUSED __attribute__ ((unused))
31 strncpy(&state->
url[state->
url_len], at, length);
34 log(LOG_HTTP_PARSING,
"Got URL: %s", state->
url);
41 log(LOG_HTTP_PARSING,
"Got end of headers");
50 strncpy(cpy, at, length);
52 log(LOG_HTTP_PARSING,
"Got header field %s", cpy);
59 memset(state, 0,
sizeof(*state));
70 log_error(
"Cannot handle connection with NULL state");
75 log_warn(
"Parsing even though header is already complete");
81 if (nparsed != bytes) {
83 log_error(
"Error parsing HTTP request %s (rcvd: %d, parsed: %d)",
84 buf, (
int)bytes, (
int)nparsed);
http_data_cb on_header_field
int parse_http(struct parser_state *state, char *buf, ssize_t bytes)
http_cb on_headers_complete
static int header_field_or_value_callback(http_parser *parser, const char *at, size_t length)
size_t http_parser_execute(http_parser *parser, const http_parser_settings *settings, const char *data, size_t len)
#define WS_INCOMPLETE_READ
Logging of status messages to the terminal.
static int headers_complete_callback(http_parser *parser)
#define log_error(fmt,...)
http_parser_settings settings
void init_parser_state(struct parser_state *state)
void http_parser_init(http_parser *parser, enum http_parser_type t)
http_data_cb on_header_value
static int url_callback(http_parser *parser, const char *at, size_t length)
#define log(level, fmt,...)
Log at a custom level.
#define log_warn(fmt,...)