summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Bühler <stbuehler@web.de>2010-04-28 19:08:11 +0000
committerStefan Bühler <stbuehler@web.de>2010-04-28 19:08:11 +0000
commitb3892c14108f12cf4aea5cc3449a4be1d9b9d0a2 (patch)
tree2c8ab38294210060d8f678e62e854cf19964c8aa
parent494ce8e3b03124b4c9fe445464edab15250141f3 (diff)
downloadlighttpd-git-b3892c14108f12cf4aea5cc3449a4be1d9b9d0a2.tar.gz
Reset uri.authority before TLS servername handling, reset all "keep-alive" data in connection_del (fixes #2125)
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2724 152afb58-edef-0310-8abb-c4023f1b3aa9
-rw-r--r--NEWS1
-rw-r--r--src/connections.c5
-rw-r--r--src/network.c3
3 files changed, 9 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 25ecf40b..500019f5 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,7 @@ NEWS
* Check uri instead of physical path for directory redirect
* Fix detecting git repository (fixes #2173, thx ncopa)
* [mod_compress] Fix segfault when etags are disabled (fixes #2169)
+ * Reset uri.authority before TLS servername handling, reset all "keep-alive" data in connection_del (fixes #2125)
- 1.4.26 - 2010-02-07
* Fix request parser to handle packets with splitted \r\n\r\n (fixes #2105)
diff --git a/src/connections.c b/src/connections.c
index 27e9a98f..aa7ea5cc 100644
--- a/src/connections.c
+++ b/src/connections.c
@@ -82,6 +82,11 @@ static int connection_del(server *srv, connection *con) {
if (-1 == con->ndx) return -1;
+ buffer_reset(con->uri.authority);
+ buffer_reset(con->uri.path);
+ buffer_reset(con->uri.query);
+ buffer_reset(con->request.orig_uri);
+
i = con->ndx;
/* not last element */
diff --git a/src/network.c b/src/network.c
index b3621291..a744e4d8 100644
--- a/src/network.c
+++ b/src/network.c
@@ -82,6 +82,9 @@ static int network_ssl_servername_callback(SSL *ssl, int *al, server *srv) {
buffer_copy_string(con->tlsext_server_name, servername);
buffer_to_lower(con->tlsext_server_name);
+ /* Sometimes this is still set, confusing COMP_HTTP_HOST */
+ buffer_reset(con->uri.authority);
+
config_cond_cache_reset(srv, con);
config_setup_connection(srv, con);