src/server/daemon/sessionhandler.c

changeset 41
bb7a1f5a8b48
parent 37
360b9aabe17e
child 44
3da1f7b6847f
--- 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
 }

mercurial