aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReyk Floeter <reyk@esdenera.com>2014-07-13 18:37:22 +0200
committerReyk Floeter <reyk@esdenera.com>2014-07-13 18:37:22 +0200
commit7c427faee432c049aec99ee716dc5c2c0af41f48 (patch)
tree4f9f9b7e80b92acec69b28afa6a7d47e49771d02
parent22614128356b566a2bbd34c99cd855ffe55308b0 (diff)
downloadhttpd-7c427faee432c049aec99ee716dc5c2c0af41f48.tar.gz
httpd-7c427faee432c049aec99ee716dc5c2c0af41f48.zip
free clt_file before reusing it
-rw-r--r--server_file.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/server_file.c b/server_file.c
index de3be92..ff3f565 100644
--- a/server_file.c
+++ b/server_file.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server_file.c,v 1.1 2014/07/12 23:34:54 reyk Exp $ */
+/* $OpenBSD: server_file.c,v 1.3 2014/07/13 15:07:50 reyk Exp $ */
/*
* Copyright (c) 2006 - 2014 Reyk Floeter <reyk@openbsd.org>
@@ -124,6 +124,9 @@ server_response(struct httpd *env, struct client *clt)
goto fail;
clt->clt_fd = fd;
+ clt->clt_persist = 0;
+ if (clt->clt_file != NULL)
+ bufferevent_free(clt->clt_file);
clt->clt_file = bufferevent_new(clt->clt_fd, server_read,
server_write, server_error, clt);
if (clt->clt_file == NULL) {
@@ -133,7 +136,7 @@ server_response(struct httpd *env, struct client *clt)
bufferevent_settimeout(clt->clt_file,
srv->srv_conf.timeout.tv_sec, srv->srv_conf.timeout.tv_sec);
- bufferevent_enable(clt->clt_file, EV_READ|EV_WRITE);
+ bufferevent_enable(clt->clt_file, EV_READ);
return (0);
fail: