quark

quark web server
git clone git://git.suckless.org/quark
Log | Files | Refs | 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 */