diff options
author | Reyk Floeter <reyk@esdenera.com> | 2014-07-13 18:37:22 +0200 |
---|---|---|
committer | Reyk Floeter <reyk@esdenera.com> | 2014-07-13 18:37:22 +0200 |
commit | 7c427faee432c049aec99ee716dc5c2c0af41f48 (patch) | |
tree | 4f9f9b7e80b92acec69b28afa6a7d47e49771d02 | |
parent | 22614128356b566a2bbd34c99cd855ffe55308b0 (diff) | |
download | httpd-7c427faee432c049aec99ee716dc5c2c0af41f48.tar.gz httpd-7c427faee432c049aec99ee716dc5c2c0af41f48.zip |
free clt_file before reusing it
-rw-r--r-- | server_file.c | 7 |
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: |