src/server/daemon/sessionhandler.c

changeset 79
f48cea237ec3
parent 78
3578977d29a3
child 106
b122f34ddc80
equal deleted inserted replaced
78:3578977d29a3 79:f48cea237ec3
35 #include "sessionhandler.h" 35 #include "sessionhandler.h"
36 #include "httprequest.h" 36 #include "httprequest.h"
37 #include "httpparser.h" 37 #include "httpparser.h"
38 #include "log.h" 38 #include "log.h"
39 #include "error.h" 39 #include "error.h"
40 #include "httplistener.h"
40 41
41 typedef struct _event_http_io { 42 typedef struct _event_http_io {
42 HTTPRequest *request; 43 HTTPRequest *request;
43 HttpParser *parser; 44 HttpParser *parser;
44 } EventHttpIO; 45 } EventHttpIO;
183 close(conn->fd); 184 close(conn->fd);
184 // TODO: free stuff 185 // TODO: free stuff
185 } 186 }
186 } 187 }
187 188
188 int evt_request_input(event_handler_t *handler, event_t *event) { 189 int evt_request_input(event_handler_t *handler, event_t *event) {
189 EventHttpIO *io = event->cookie; 190 EventHttpIO *io = event->cookie;
190 HttpParser *parser = io->parser; 191 HttpParser *parser = io->parser;
191 HTTPRequest *request = io->request; 192 HTTPRequest *request = io->request;
192 netbuf *buf = request->netbuf; 193 netbuf *buf = request->netbuf;
193 194
239 * polling and executes event->finish (evt_request_input_finish) 240 * polling and executes event->finish (evt_request_input_finish)
240 */ 241 */
241 return 0; 242 return 0;
242 } 243 }
243 244
244 int evt_request_finish(event_handler_t *h, event_t *event) { 245 int evt_request_finish(event_handler_t *h, event_t *event) {
245 EventHttpIO *io = event->cookie; 246 EventHttpIO *io = event->cookie;
246 HttpParser *parser = io->parser; 247 HttpParser *parser = io->parser;
247 HTTPRequest *request = io->request; 248 HTTPRequest *request = io->request;
248 249
249 int r = handle_request(request, NULL); 250 int r = handle_request(request, NULL);
273 EventHttpIO *io = event->cookie; 274 EventHttpIO *io = event->cookie;
274 HttpParser *parser = io->parser; 275 HttpParser *parser = io->parser;
275 HTTPRequest *request = io->request; 276 HTTPRequest *request = io->request;
276 277
277 close(request->connection->fd); 278 close(request->connection->fd);
279 cfg_unref(request->connection->listener->cfg);
278 280
279 header_array_free(request->headers); 281 header_array_free(request->headers);
280 free(request); 282 free(request);
281 283
282 http_parser_free(parser); 284 http_parser_free(parser);

mercurial