-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrequest.h
64 lines (49 loc) · 1.19 KB
/
request.h
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef REQUEST_H_
#define REQUEST_H_
#include <stdio.h>
#include <syslog.h>
#include <errno.h>
#include <string.h>
#include <sys/socket.h>
#include <stdlib.h>
#include "utils.h"
#define MAXHEADERSIZE 8192
#ifdef __cplusplus
extern "C" {
#endif
typedef enum lal_header_error {
LAL_SUCCESS, NOBYTES, RECV_FAILED, MAXHEADERSIZE_EXCEEDED, DISCONNECTED
} LAL_HEADER_ERROR;
enum lal_http_method {
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, ANY
};
struct lal_request {
const char *path;
int pathlen;
enum lal_http_method method;
const char *_raw_header;
struct lal_entry *header;
const uint8_t *content;
int content_length;
void *extra;
};
const char
*lal_method_to_string (enum lal_http_method m);
struct lal_entry
*lal_get_header (struct lal_request *request, const char *key);
void
lal_set_headers (struct lal_request *request, const char *src);
LAL_HEADER_ERROR
lal_parse_header (int sock, char **header);
void
lal_set_content(int sock, struct lal_request *request);
void
lal_destroy_request (struct lal_request *request);
struct lal_request
*lal_create_request (const char *src);
const char
*lal_header_error_msg (LAL_HEADER_ERROR error);
#ifdef __cplusplus
}
#endif
#endif // REQUEST_H_