-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmows.h
62 lines (46 loc) · 1.47 KB
/
mows.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
#ifndef mows_h_included
#define mows_h_included
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum MOWS_PARAM
{
MOWS_PARAM_NTHREADS
} MOWS_PARAM;
typedef struct mows_params mows_params;
typedef struct mows mows;
typedef struct mows_request mows_request;
typedef struct mows_response mows_response;
typedef void (*mows_page_cb) (mows *m, mows_request *r, int s);
/* params */
mows_params *mows_params_new(void);
void mows_params_free(mows_params *p);
void mows_params_set(mows_params *p, MOWS_PARAM param, uint64_t val);
/* server */
mows *mows_alloc(mows_params *p);
void mows_free(mows *m);
int mows_start(mows *m, const char *addr, const int port, int bg);
void mows_stop(mows *m);
int mows_set_root(mows *m, const char *dir);
int mows_add_page(mows *m, const char *p, mows_page_cb cb);
int mows_add_re(mows *m, const char *re, mows_page_cb cb, char *err,
size_t esize);
int mows_send_all(int sock, char *buffer, size_t len);
void mows_redirect302(const char *to, int s);
/* request */
const char *mows_req_url(mows_request *r);
/* variables */
size_t mows_req_nvars(mows_request *r);
const char *mows_req_var_name(mows_request *r, size_t i);
const char *mows_req_var_val(mows_request *r, size_t i);
/* headers */
size_t mows_req_nheaders(mows_request *r);
const char *mows_req_header_name(mows_request *r, size_t i);
const char *mows_req_header_val(mows_request *r, size_t i);
/* method */
int mows_req_method(mows_request *r);
#ifdef __cplusplus
}
#endif
#endif