summaryrefslogtreecommitdiffhomepage
path: root/request.h
blob: be5ff0e5046be435b0a879165d277266555d6999 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#pragma once

#include <lua.h>

struct span
{
	int start;
	int length;
};

struct header
{
	struct span name;
	struct span value;
};

struct request
{
	int (* step)(struct request *);
	char * data;
	int length;
	int position;
	lua_State * lua;
	int reference;
	struct span temp;
	struct header * headerv;
	int headerc;
	struct span body;
};

struct request * new_request(lua_State *);
void free_request(lua_State *, struct request *);

int parse_request(lua_State *, int, struct request **);

int parse_step_method(struct request *);
int parse_step_path(struct request *);
int parse_step_version(struct request *);
int parse_step_header_name(struct request *);
int parse_step_header_value(struct request *);