connection.h - quark - quark web server
(HTM) git clone git://git.suckless.org/quark
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
connection.h (692B)
---
1 /* See LICENSE file for copyright and license details. */
2 #ifndef CONNECTION_H
3 #define CONNECTION_H
4
5 #include "http.h"
6 #include "server.h"
7 #include "util.h"
8
9 enum connection_state {
10 C_VACANT,
11 C_RECV_HEADER,
12 C_SEND_HEADER,
13 C_SEND_BODY,
14 NUM_CONN_STATES,
15 };
16
17 struct connection {
18 enum connection_state state;
19 int fd;
20 struct sockaddr_storage ia;
21 struct request req;
22 struct response res;
23 struct buffer buf;
24 size_t progress;
25 };
26
27 struct connection *connection_accept(int, struct connection *, size_t);
28 void connection_log(const struct connection *);
29 void connection_reset(struct connection *);
30 void connection_serve(struct connection *, const struct server *);
31
32 #endif /* CONNECTION_H */