Libevhtp
1.2.13
|
#include <stdlib.h>
#include <stddef.h>
#include <ctype.h>
#include "internal.h"
#include "evhtp/parser.h"
#include "evhtp/config.h"
#include "log.h"
Go to the source code of this file.
Data Structures | |
struct | htparser |
Macros | |
#define | PARSER_STACK_MAX 8192 |
#define | LF (unsigned char)10 |
#define | CR (unsigned char)13 |
#define | CRLF "\x0d\x0a" |
#define | log_htparser__s_(p) |
#define | _MIN_READ(a, b) ((a) < (b) ? (a) : (b)) |
#define | _str3_cmp(m, c0, c1, c2, c3) *(uint32_t *)m == ((c3 << 24) | (c2 << 16) | (c1 << 8) | c0) |
#define | _str3Ocmp(m, c0, c1, c2, c3) *(uint32_t *)m == ((c3 << 24) | (c2 << 16) | (c1 << 8) | c0) |
#define | _str4cmp(m, c0, c1, c2, c3) *(uint32_t *)m == ((c3 << 24) | (c2 << 16) | (c1 << 8) | c0) |
#define | _str5cmp(m, c0, c1, c2, c3, c4) |
#define | _str6cmp(m, c0, c1, c2, c3, c4, c5) |
#define | _str7_cmp(m, c0, c1, c2, c3, c4, c5, c6, c7) |
#define | _str8cmp(m, c0, c1, c2, c3, c4, c5, c6, c7) |
#define | _str9cmp(m, c0, c1, c2, c3, c4, c5, c6, c7, c8) |
#define | __HTPARSE_GENHOOK(__n) |
#define | __HTPARSE_GENDHOOK(__n) |
#define | HTP_SET_BUF(CH) |
Typedefs | |
typedef enum eval_hdr_val | eval_hdr_val |
typedef enum parser_flags | parser_flags |
typedef enum parser_state | parser_state |
Functions | |
static uint64_t | str_to_uint64 (char *str, size_t n, int *err) |
static ssize_t | _str_to_ssize_t (char *str, size_t n) |
htpparse_error | htparser_get_error (htparser *p) |
const char * | htparser_get_strerror (htparser *p) |
unsigned int | htparser_get_status (htparser *p) |
int | htparser_should_keep_alive (htparser *p) |
htp_scheme | htparser_get_scheme (htparser *p) |
htp_method | htparser_get_method (htparser *p) |
const char * | htparser_get_methodstr_m (htp_method meth) |
const char * | htparser_get_methodstr (htparser *p) |
void | htparser_set_major (htparser *p, unsigned char major) |
void | htparser_set_minor (htparser *p, unsigned char minor) |
unsigned char | htparser_get_major (htparser *p) |
unsigned char | htparser_get_minor (htparser *p) |
unsigned char | htparser_get_multipart (htparser *p) |
void * | htparser_get_userdata (htparser *p) |
void | htparser_set_userdata (htparser *p, void *ud) |
uint64_t | htparser_get_content_pending (htparser *p) |
uint64_t | htparser_get_content_length (htparser *p) |
uint64_t | htparser_get_bytes_read (htparser *p) |
uint64_t | htparser_get_total_bytes_read (htparser *p) |
void | htparser_init (htparser *p, htp_type type) |
htparser * | htparser_new (void) |
static int | is_host_char (unsigned char ch) |
static htp_method | get_method (const char *m, const size_t sz) |
size_t | htparser_run (htparser *p, htparse_hooks *hooks, const char *data, size_t len) |
Variables | |
static uint32_t | usual [] |
static int8_t | unhex [256] |
static const char * | errstr_map [] |
static const char * | method_strmap [] |
#define __HTPARSE_GENDHOOK | ( | __n | ) |
#define __HTPARSE_GENHOOK | ( | __n | ) |
#define _str3_cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3 | |||
) | *(uint32_t *)m == ((c3 << 24) | (c2 << 16) | (c1 << 8) | c0) |
#define _str3Ocmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3 | |||
) | *(uint32_t *)m == ((c3 << 24) | (c2 << 16) | (c1 << 8) | c0) |
#define _str4cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3 | |||
) | *(uint32_t *)m == ((c3 << 24) | (c2 << 16) | (c1 << 8) | c0) |
#define _str5cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3, | |||
c4 | |||
) |
#define _str6cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3, | |||
c4, | |||
c5 | |||
) |
#define _str7_cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3, | |||
c4, | |||
c5, | |||
c6, | |||
c7 | |||
) |
#define _str8cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3, | |||
c4, | |||
c5, | |||
c6, | |||
c7 | |||
) |
#define _str9cmp | ( | m, | |
c0, | |||
c1, | |||
c2, | |||
c3, | |||
c4, | |||
c5, | |||
c6, | |||
c7, | |||
c8 | |||
) |
#define HTP_SET_BUF | ( | CH | ) |
typedef enum eval_hdr_val eval_hdr_val |
typedef enum parser_flags parser_flags |
typedef enum parser_state parser_state |
enum eval_hdr_val |
enum parser_flags |
enum parser_state |
|
inlinestatic |
|
static |
uint64_t htparser_get_content_length | ( | htparser * | p | ) |
htpparse_error htparser_get_error | ( | htparser * | p | ) |
unsigned char htparser_get_major | ( | htparser * | p | ) |
htp_method htparser_get_method | ( | htparser * | p | ) |
const char* htparser_get_methodstr | ( | htparser * | p | ) |
const char* htparser_get_methodstr_m | ( | htp_method | meth | ) |
unsigned char htparser_get_minor | ( | htparser * | p | ) |
unsigned char htparser_get_multipart | ( | htparser * | p | ) |
htp_scheme htparser_get_scheme | ( | htparser * | p | ) |
unsigned int htparser_get_status | ( | htparser * | p | ) |
const char* htparser_get_strerror | ( | htparser * | p | ) |
void* htparser_get_userdata | ( | htparser * | p | ) |
void htparser_init | ( | htparser * | p, |
htp_type | type | ||
) |
htparser* htparser_new | ( | void | ) |
size_t htparser_run | ( | htparser * | p, |
htparse_hooks * | hooks, | ||
const char * | data, | ||
size_t | len | ||
) |
void htparser_set_major | ( | htparser * | p, |
unsigned char | major | ||
) |
void htparser_set_minor | ( | htparser * | p, |
unsigned char | minor | ||
) |
void htparser_set_userdata | ( | htparser * | p, |
void * | ud | ||
) |
int htparser_should_keep_alive | ( | htparser * | p | ) |
|
static |
|
inlinestatic |
|
static |
|
static |
|
static |