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); |