2 ===================================================================
3 --- configure.in (.../tags/lighttpd-1.4.19) (revision 2145)
4 +++ configure.in (.../branches/lighttpd-1.4.x) (revision 2145)
7 # Process this file with autoconf to produce a configure script.
9 -AC_INIT(lighttpd, 1.4.19, jan@kneschke.de)
10 +AC_INIT(lighttpd, 1.4.20, jan@kneschke.de)
11 AC_CONFIG_SRCDIR([src/server.c])
14 Index: src/configfile-glue.c
15 ===================================================================
16 --- src/configfile-glue.c (.../tags/lighttpd-1.4.19) (revision 2145)
17 +++ src/configfile-glue.c (.../branches/lighttpd-1.4.x) (revision 2145)
19 int config_append_cond_match_buffer(connection *con, data_config *dc, buffer *buf, int n)
21 cond_cache_t *cache = &con->cond_cache[dc->context_ndx];
22 - if (n > cache->patterncount) {
23 + if (n >= cache->patterncount) {
27 Index: src/connections.c
28 ===================================================================
29 --- src/connections.c (.../tags/lighttpd-1.4.19) (revision 2145)
30 +++ src/connections.c (.../branches/lighttpd-1.4.x) (revision 2145)
33 /* don't resize the buffer if we were in SSL_ERROR_WANT_* */
37 if (!con->ssl_error_want_reuse_buffer) {
39 @@ -1668,21 +1669,51 @@
42 if (srv_sock->is_ssl) {
47 switch ((ret = SSL_shutdown(con->ssl))) {
52 - SSL_shutdown(con->ssl);
55 + if (-1 != (ret = SSL_shutdown(con->ssl))) break;
59 - log_error_write(srv, __FILE__, __LINE__, "sds", "SSL:",
60 - SSL_get_error(con->ssl, ret),
61 - ERR_error_string(ERR_get_error(), NULL));
64 + switch ((ssl_r = SSL_get_error(con->ssl, ret))) {
65 + case SSL_ERROR_WANT_WRITE:
66 + case SSL_ERROR_WANT_READ:
68 + case SSL_ERROR_SYSCALL:
69 + /* perhaps we have error waiting in our error-queue */
70 + if (0 != (err = ERR_get_error())) {
72 + log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:",
74 + ERR_error_string(err, NULL));
75 + } while((err = ERR_get_error()));
77 + log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL (error):",
84 + while((err = ERR_get_error())) {
85 + log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:",
87 + ERR_error_string(err, NULL));
99 ===================================================================
100 --- src/response.c (.../tags/lighttpd-1.4.19) (revision 2145)
101 +++ src/response.c (.../branches/lighttpd-1.4.x) (revision 2145)
104 if (buffer_is_empty(con->conf.server_tag)) {
105 BUFFER_APPEND_STRING_CONST(b, "\r\nServer: " PACKAGE_NAME "/" PACKAGE_VERSION);
107 + } else if (con->conf.server_tag->used > 1) {
108 BUFFER_APPEND_STRING_CONST(b, "\r\nServer: ");
109 buffer_append_string_encoded(b, CONST_BUF_LEN(con->conf.server_tag), ENCODING_HTTP_HEADER);
111 Index: src/mod_extforward.c
112 ===================================================================
113 --- src/mod_extforward.c (.../tags/lighttpd-1.4.19) (revision 2145)
114 +++ src/mod_extforward.c (.../branches/lighttpd-1.4.x) (revision 2145)
116 static const char *last_not_in_array(array *a, plugin_data *p)
118 array *forwarder = p->conf.forwarder;
121 - for (int i = a->used - 1; i >= 0; i--) {
122 + for (i = a->used - 1; i >= 0; i--) {
123 data_string *ds = (data_string *)a->data[i];
124 const char *ip = ds->value->ptr;
126 Index: src/network_openssl.c
127 ===================================================================
128 --- src/network_openssl.c (.../tags/lighttpd-1.4.19) (revision 2145)
129 +++ src/network_openssl.c (.../branches/lighttpd-1.4.x) (revision 2145)
135 if ((r = SSL_write(ssl, offset, toSend)) <= 0) {
143 if ((r = SSL_write(ssl, s, toSend)) <= 0) {
146 Index: src/mod_compress.c
147 ===================================================================
148 --- src/mod_compress.c (.../tags/lighttpd-1.4.19) (revision 2145)
149 +++ src/mod_compress.c (.../branches/lighttpd-1.4.x) (revision 2145)
153 if (!buffer_is_empty(s->compress_cache_dir)) {
155 mkdir_recursive(s->compress_cache_dir->ptr);
158 if (0 != stat(s->compress_cache_dir->ptr, &st)) {
159 log_error_write(srv, __FILE__, __LINE__, "sbs", "can't stat compress.cache-dir",
160 s->compress_cache_dir, strerror(errno));
161 Index: src/mod_fastcgi.c
162 ===================================================================
163 --- src/mod_fastcgi.c (.../tags/lighttpd-1.4.19) (revision 2145)
164 +++ src/mod_fastcgi.c (.../branches/lighttpd-1.4.x) (revision 2145)
165 @@ -2544,7 +2544,10 @@
166 stat_cache_entry *sce;
168 if (HANDLER_ERROR != stat_cache_get_entry(srv, con, ds->value, &sce)) {
169 - data_string *dcls = data_string_init();
171 + if (NULL == (dcls = (data_string *)array_get_unused_element(con->response.headers, TYPE_STRING))) {
172 + dcls = data_response_init();
175 http_chunk_append_file(srv, con, ds->value, 0, sce->st.st_size);
176 hctx->send_content_body = 0; /* ignore the content */
177 Index: src/mod_magnet.c
178 ===================================================================
179 --- src/mod_magnet.c (.../tags/lighttpd-1.4.19) (revision 2145)
180 +++ src/mod_magnet.c (.../branches/lighttpd-1.4.x) (revision 2145)
181 @@ -414,10 +414,16 @@
182 case MAGNET_ENV_URI_AUTHORITY: dest = con->uri.authority; break;
183 case MAGNET_ENV_URI_QUERY: dest = con->uri.query; break;
185 - case MAGNET_ENV_REQUEST_METHOD: break;
186 + case MAGNET_ENV_REQUEST_METHOD:
187 + buffer_copy_string(srv->tmp_buf, get_http_method_name(con->request.http_method));
188 + dest = srv->tmp_buf;
190 case MAGNET_ENV_REQUEST_URI: dest = con->request.uri; break;
191 case MAGNET_ENV_REQUEST_ORIG_URI: dest = con->request.orig_uri; break;
192 - case MAGNET_ENV_REQUEST_PROTOCOL: break;
193 + case MAGNET_ENV_REQUEST_PROTOCOL:
194 + buffer_copy_string(srv->tmp_buf, get_http_version_name(con->request.http_version));
195 + dest = srv->tmp_buf;
198 case MAGNET_ENV_UNSET: break;
200 Index: doc/userdir.txt
201 ===================================================================
202 --- doc/userdir.txt (.../tags/lighttpd-1.4.19) (revision 2145)
203 +++ doc/userdir.txt (.../branches/lighttpd-1.4.x) (revision 2145)
209 +userdir.path (required option)
210 usually it should be set to "public_html" to take ~/public_html/ as the document root
212 - Default: empty (document root is the home directory)
213 + Default: unset (mod_userdir disabled; set it to "" if you want the home directory to be the document root as it was the default before 1.4.19)
216 userdir.path = "public_html"
218 ===================================================================
219 --- SConstruct (.../tags/lighttpd-1.4.19) (revision 2145)
220 +++ SConstruct (.../branches/lighttpd-1.4.x) (revision 2145)
228 def checkCHeaders(autoconf, hdrs):
229 p = re.compile('[^A-Z0-9]')
231 ===================================================================
232 --- NEWS (.../tags/lighttpd-1.4.19) (revision 2145)
233 +++ NEWS (.../branches/lighttpd-1.4.x) (revision 2145)
241 + * Fix mod_compress to compile with old gcc version (#1592)
242 + * Fix mod_extforward to compile with old gcc version (#1591)
243 + * Update documentation for #1587
244 + * Fix #285 again: read error after SSL_shutdown (thx marton.illes@balabit.com) and clear the error queue before some other calls (CVE-2008-1531)
245 + * Fix mod_magnet: enable "request.method" and "request.protocol" in lighty.env (#1308)
246 + * Fix segfault for appending matched parts if there was no regex matching (just give empty strings) (#1601)
247 + * Use data_response_init in mod_fastcgi x-sendfile handling for response.headers, fix a small "memleak" (#1628)
248 + * Don't send empty Server headers (#1620)
250 +- 1.4.19 - 2008-03-10
252 * added support for If-Range: <date> (#1346)
253 * added support for matching $HTTP["scheme"] in configs
254 * fixed initgroups() called after chroot (#1384)
256 Property changes on: .
257 ___________________________________________________________________
259 - 152afb58-edef-0310-8abb-c4023f1b3aa9:/branches/lighttpd-1.3.x:499
260 152afb58-edef-0310-8abb-c4023f1b3aa9:/branches/lighttpd-1.4.11-ssl-fixes:1346
261 152afb58-edef-0310-8abb-c4023f1b3aa9:/branches/lighttpd-merge-1.4.x:1041
262 152afb58-edef-0310-8abb-c4023f1b3aa9:/tags/lighttpd-1.4.11:1042
263 152afb58-edef-0310-8abb-c4023f1b3aa9:/tags/release-1.3.13:105
264 152afb58-edef-0310-8abb-c4023f1b3aa9:/trunk:104
265 a98e19e4-a712-0410-8832-6551a15ffc53:/local/branches/lighttpd-1.4.x:1557
266 ebd0e9cf-3e47-4385-9dd4-f0e25e97baa2:/local/lighttpd/branches/lighttpd-1.4.x:2164
267 + 152afb58-edef-0310-8abb-c4023f1b3aa9:/branches/lighttpd-1.3.x:499
268 152afb58-edef-0310-8abb-c4023f1b3aa9:/branches/lighttpd-1.4.11-ssl-fixes:1346
269 152afb58-edef-0310-8abb-c4023f1b3aa9:/branches/lighttpd-merge-1.4.x:1041
270 152afb58-edef-0310-8abb-c4023f1b3aa9:/tags/lighttpd-1.4.11:1042
271 152afb58-edef-0310-8abb-c4023f1b3aa9:/tags/release-1.3.13:105
272 152afb58-edef-0310-8abb-c4023f1b3aa9:/trunk:104
273 a98e19e4-a712-0410-8832-6551a15ffc53:/local/branches/lighttpd-1.4.x:1557
274 ebd0e9cf-3e47-4385-9dd4-f0e25e97baa2:/local/lighttpd/branches/lighttpd-1.4.x:2209