diff -r f1cff81e425a -r 3578977d29a3 src/server/daemon/sessionhandler.h --- a/src/server/daemon/sessionhandler.h Tue Jun 25 15:45:13 2013 +0200 +++ b/src/server/daemon/sessionhandler.h Tue Jun 25 22:18:59 2013 +0200 @@ -48,8 +48,21 @@ }; typedef void(*enqueue_connection_f)(SessionHandler*, Connection*); +typedef void(*keep_alive_f)(SessionHandler*, Connection*); struct _session_handler { - enqueue_connection_f enqueue_connection; + /* + * Adds a connection. The session handler starts reading and parsing the + * http request. After that its pass the request to the request handler + * (handle_request). + */ + void(*enqueue_connection)(SessionHandler *sh, Connection *conn); + + /* + * Adds a connection to the keep-alive handler. The session handler + * waits for new data and re-enqueues the connection, if new data is + * available + */ + void(*keep_alive)(SessionHandler*, Connection *conn); }; /* @@ -87,6 +100,8 @@ void* basic_run_session(void *data); +void basic_keep_alive(SessionHandler *handler, Connection *conn); + SessionHandler* create_event_session_handler(); @@ -96,6 +111,8 @@ int evt_request_finish(event_handler_t *h, event_t *event); int evt_request_error(event_handler_t *h, event_t *event); +void evt_keep_alive(SessionHandler *handler, Connection *conn); + #ifdef __cplusplus }