diff -r 56cda23f48d4 -r bb7a1f5a8b48 src/server/daemon/sessionhandler.c --- a/src/server/daemon/sessionhandler.c Mon Dec 31 00:07:52 2012 +0100 +++ b/src/server/daemon/sessionhandler.c Tue Jan 01 13:32:04 2013 +0100 @@ -168,7 +168,7 @@ } } -void evt_request_input(event_handler_t *handler, event_t *event) { +int evt_request_input(event_handler_t *handler, event_t *event) { EventHttpIO *io = event->cookie; HttpParser *parser = io->parser; HTTPRequest *request = io->request; @@ -183,7 +183,7 @@ if(r == -1) { // TODO: error handling fprintf(stderr, "%s\n", "Error: Cannot read from socket"); - return; + return 0; } buf->cursize += r; @@ -191,12 +191,13 @@ if(state == 2) { // TODO: error handling fprintf(stderr, "%s\n", "Error: Cannot parse http request"); - return; + return 0; } else if(state == 1) { - // we need more data -> begin poll, which repeats this function - ev_pollin(handler, request->connection->fd, event); - // TODO: check ev_pollin return value for errors - return; + /* + * we need more data -> return 1 to tell the event handler to + * continue polling + */ + return 1; } // we are done with reading @@ -213,4 +214,6 @@ // process request r = handle_request(request, NULL); + + return 0; // TODO: return before handle_request }