diff options
author | Thilo Bangert <bangert@gentoo.org> | 2007-10-12 14:09:39 +0000 |
---|---|---|
committer | Thilo Bangert <bangert@gentoo.org> | 2007-10-12 14:09:39 +0000 |
commit | bb9df5e277ea85df10ef8cbb04b3fcd5bc6d5bdd (patch) | |
tree | 3b5ef8030fbb0b87c8856d2fc3fe25a6c820e121 /www-servers/lighttpd/files | |
parent | Add ipv6 USE flag (#178501). (diff) | |
download | gentoo-2-bb9df5e277ea85df10ef8cbb04b3fcd5bc6d5bdd.tar.gz gentoo-2-bb9df5e277ea85df10ef8cbb04b3fcd5bc6d5bdd.tar.bz2 gentoo-2-bb9df5e277ea85df10ef8cbb04b3fcd5bc6d5bdd.zip |
security cleanup - bug #191912 and others
(Portage version: 2.1.3.9)
Diffstat (limited to 'www-servers/lighttpd/files')
27 files changed, 0 insertions, 1519 deletions
diff --git a/www-servers/lighttpd/files/1.4.11/01_all_r1046.mod_compress.c-fixes.diff b/www-servers/lighttpd/files/1.4.11/01_all_r1046.mod_compress.c-fixes.diff deleted file mode 100644 index fdb419913939..000000000000 --- a/www-servers/lighttpd/files/1.4.11/01_all_r1046.mod_compress.c-fixes.diff +++ /dev/null @@ -1,186 +0,0 @@ ---- lighttpd-1.4.11.orig/src/mod_compress.c (revision 861) -+++ lighttpd-1.4.11/src/mod_compress.c (revision 1046) -@@ -15,4 +15,5 @@ - #include "response.h" - #include "stat_cache.h" -+#include "http_chunk.h" - - #include "plugin.h" -@@ -327,4 +328,7 @@ - const char *filename = fn->ptr; - ssize_t r; -+ stat_cache_entry *compressed_sce = NULL; -+ -+ if (buffer_is_empty(p->conf.compress_cache_dir)) return -1; - - /* overflow */ -@@ -384,25 +388,32 @@ - - buffer_append_string_buffer(p->ofn, sce->etag); -+ -+ -+ if (HANDLER_ERROR != stat_cache_get_entry(srv, con, p->ofn, &compressed_sce)) { -+ /* file exists */ -+ -+ http_chunk_append_file(srv, con, p->ofn, 0, compressed_sce->st.st_size); -+ con->file_finished = 1; -+ -+ return 0; -+ } - - if (-1 == (ofd = open(p->ofn->ptr, O_WRONLY | O_CREAT | O_EXCL | O_BINARY, 0600))) { - if (errno == EEXIST) { - /* cache-entry exists */ --#if 0 -- log_error_write(srv, __FILE__, __LINE__, "bs", p->ofn, "compress-cache hit"); --#endif -- buffer_copy_string_buffer(con->physical.path, p->ofn); -- -- return 0; -+ - } - -- log_error_write(srv, __FILE__, __LINE__, "sbss", "creating cachefile", p->ofn, "failed", strerror(errno)); -- -- return -1; -- } --#if 0 -- log_error_write(srv, __FILE__, __LINE__, "bs", p->ofn, "compress-cache miss"); --#endif -+ log_error_write(srv, __FILE__, __LINE__, "sbss", -+ "creating cachefile", p->ofn, -+ "failed", strerror(errno)); -+ -+ return -1; -+ } -+ - if (-1 == (ifd = open(filename, O_RDONLY | O_BINARY))) { -- log_error_write(srv, __FILE__, __LINE__, "sbss", "opening plain-file", fn, "failed", strerror(errno)); -+ log_error_write(srv, __FILE__, __LINE__, "sbss", -+ "opening plain-file", fn, -+ "failed", strerror(errno)); - - close(ofd); -@@ -413,5 +424,7 @@ - - if (MAP_FAILED == (start = mmap(NULL, sce->st.st_size, PROT_READ, MAP_SHARED, ifd, 0))) { -- log_error_write(srv, __FILE__, __LINE__, "sbss", "mmaping", fn, "failed", strerror(errno)); -+ log_error_write(srv, __FILE__, __LINE__, "sbss", -+ "mmaping", fn, -+ "failed", strerror(errno)); - - close(ofd); -@@ -456,6 +469,7 @@ - if (ret != 0) return -1; - -- buffer_copy_string_buffer(con->physical.path, p->ofn); -- -+ http_chunk_append_file(srv, con, p->ofn, 0, r); -+ con->file_finished = 1; -+ - return 0; - } -@@ -477,5 +491,4 @@ - if (sce->st.st_size > 128 * 1024 * 1024) return -1; - -- - if (-1 == (ifd = open(fn->ptr, O_RDONLY | O_BINARY))) { - log_error_write(srv, __FILE__, __LINE__, "sbss", "opening plain-file", fn, "failed", strerror(errno)); -@@ -483,13 +496,15 @@ - return -1; - } -- -- -- if (MAP_FAILED == (start = mmap(NULL, sce->st.st_size, PROT_READ, MAP_SHARED, ifd, 0))) { -+ -+ start = mmap(NULL, sce->st.st_size, PROT_READ, MAP_SHARED, ifd, 0); -+ -+ close(ifd); -+ -+ if (MAP_FAILED == start) { - log_error_write(srv, __FILE__, __LINE__, "sbss", "mmaping", fn, "failed", strerror(errno)); - -- close(ifd); -- return -1; -- } -- -+ return -1; -+ } -+ - switch(type) { - #ifdef USE_ZLIB -@@ -512,5 +527,4 @@ - - munmap(start, sce->st.st_size); -- close(ifd); - - if (ret != 0) return -1; -@@ -589,4 +603,7 @@ - /* don't compress files that are too large as we need to much time to handle them */ - if (max_fsize && (sce->st.st_size >> 10) > max_fsize) return HANDLER_GO_ON; -+ -+ /* compressing the file might lead to larger files instead */ -+ if (sce->st.st_size < 128) return HANDLER_GO_ON; - - /* check if mimetype is in compress-config */ -@@ -639,5 +656,18 @@ - const char *compression_name = NULL; - int compression_type = 0; -+ buffer *mtime; - -+ mtime = strftime_cache_get(srv, sce->st.st_mtime); -+ etag_mutate(con->physical.etag, sce->etag); -+ -+ response_header_overwrite(srv, con, CONST_STR_LEN("Last-Modified"), CONST_BUF_LEN(mtime)); -+ response_header_overwrite(srv, con, CONST_STR_LEN("ETag"), CONST_BUF_LEN(con->physical.etag)); -+ -+ /* perhaps we don't even have to compress the file as the browser still has the -+ * current version */ -+ if (HANDLER_FINISHED == http_response_handle_cachable(srv, con, mtime)) { -+ return HANDLER_FINISHED; -+ } -+ - /* select best matching encoding */ - if (matched_encodings & HTTP_ACCEPT_ENCODING_BZIP2) { -@@ -652,28 +682,18 @@ - } - -- /* deflate it */ -- if (p->conf.compress_cache_dir->used) { -- if (0 == deflate_file_to_file(srv, con, p, -- con->physical.path, sce, compression_type)) { -- buffer *mtime; -+ /* deflate it to file (cached) or to memory */ -+ if (0 == deflate_file_to_file(srv, con, p, -+ con->physical.path, sce, compression_type) || -+ 0 == deflate_file_to_buffer(srv, con, p, -+ con->physical.path, sce, compression_type)) { - -- response_header_overwrite(srv, con, CONST_STR_LEN("Content-Encoding"), compression_name, strlen(compression_name)); -- -- mtime = strftime_cache_get(srv, sce->st.st_mtime); -- response_header_overwrite(srv, con, CONST_STR_LEN("Last-Modified"), CONST_BUF_LEN(mtime)); -- -- etag_mutate(con->physical.etag, sce->etag); -- response_header_overwrite(srv, con, CONST_STR_LEN("ETag"), CONST_BUF_LEN(con->physical.etag)); -- -- response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_BUF_LEN(sce->content_type)); -- -- return HANDLER_GO_ON; -- } -- } else if (0 == deflate_file_to_buffer(srv, con, p, -- con->physical.path, sce, compression_type)) { -- -- response_header_overwrite(srv, con, CONST_STR_LEN("Content-Encoding"), compression_name, strlen(compression_name)); -- response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_BUF_LEN(sce->content_type)); -- -+ response_header_overwrite(srv, con, -+ CONST_STR_LEN("Content-Encoding"), -+ compression_name, strlen(compression_name)); -+ -+ response_header_overwrite(srv, con, -+ CONST_STR_LEN("Content-Type"), -+ CONST_BUF_LEN(sce->content_type)); -+ - return HANDLER_FINISHED; - } diff --git a/www-servers/lighttpd/files/1.4.11/02_all_r1057_fix_If-Modified-Since-ETag.diff b/www-servers/lighttpd/files/1.4.11/02_all_r1057_fix_If-Modified-Since-ETag.diff deleted file mode 100644 index b1fc8340fcba..000000000000 --- a/www-servers/lighttpd/files/1.4.11/02_all_r1057_fix_If-Modified-Since-ETag.diff +++ /dev/null @@ -1,85 +0,0 @@ ---- lighttpd-1.4.11.orig/src/http-header-glue.c (revision 989) -+++ lighttpd-1.4.11/src/http-header-glue.c (revision 1057) -@@ -263,24 +263,9 @@ - } else { - char buf[sizeof("Sat, 23 Jul 2005 21:20:01 GMT")]; -- -- /* convert to timestamp */ -- if (used_len < sizeof(buf)) { -- time_t t_header, t_file; -- struct tm tm; -- -- strncpy(buf, con->request.http_if_modified_since, used_len); -- buf[used_len] = '\0'; -- -- strptime(buf, "%a, %d %b %Y %H:%M:%S GMT", &tm); -- t_header = mktime(&tm); -- -- strptime(mtime->ptr, "%a, %d %b %Y %H:%M:%S GMT", &tm); -- t_file = mktime(&tm); -- -- if (t_file > t_header) { -- con->http_status = 304; -- return HANDLER_FINISHED; -- } -- } else { -+ time_t t_header, t_file; -+ struct tm tm; -+ -+ /* check if we can safely copy the string */ -+ if (used_len >= sizeof(buf)) { - log_error_write(srv, __FILE__, __LINE__, "ssdd", - "DEBUG: Last-Modified check failed as the received timestamp was too long:", -@@ -290,4 +275,19 @@ - return HANDLER_FINISHED; - } -+ -+ -+ strncpy(buf, con->request.http_if_modified_since, used_len); -+ buf[used_len] = '\0'; -+ -+ strptime(buf, "%a, %d %b %Y %H:%M:%S GMT", &tm); -+ t_header = mktime(&tm); -+ -+ strptime(mtime->ptr, "%a, %d %b %Y %H:%M:%S GMT", &tm); -+ t_file = mktime(&tm); -+ -+ if (t_file > t_header) return HANDLER_GO_ON; -+ -+ con->http_status = 304; -+ return HANDLER_FINISHED; - } - } else { -@@ -303,5 +303,5 @@ - size_t used_len; - char *semicolon; -- -+ - if (NULL == (semicolon = strchr(con->request.http_if_modified_since, ';'))) { - used_len = strlen(con->request.http_if_modified_since); -@@ -313,4 +313,25 @@ - con->http_status = 304; - return HANDLER_FINISHED; -+ } else { -+ char buf[sizeof("Sat, 23 Jul 2005 21:20:01 GMT")]; -+ time_t t_header, t_file; -+ struct tm tm; -+ -+ /* convert to timestamp */ -+ if (used_len >= sizeof(buf)) return HANDLER_GO_ON; -+ -+ strncpy(buf, con->request.http_if_modified_since, used_len); -+ buf[used_len] = '\0'; -+ -+ strptime(buf, "%a, %d %b %Y %H:%M:%S GMT", &tm); -+ t_header = mktime(&tm); -+ -+ strptime(mtime->ptr, "%a, %d %b %Y %H:%M:%S GMT", &tm); -+ t_file = mktime(&tm); -+ -+ if (t_file > t_header) return HANDLER_GO_ON; -+ -+ con->http_status = 304; -+ return HANDLER_FINISHED; - } - } diff --git a/www-servers/lighttpd/files/1.4.11/03_all_r1095_fix_stalling_SSL_POST_requests.diff b/www-servers/lighttpd/files/1.4.11/03_all_r1095_fix_stalling_SSL_POST_requests.diff deleted file mode 100644 index 672dc950b9bc..000000000000 --- a/www-servers/lighttpd/files/1.4.11/03_all_r1095_fix_stalling_SSL_POST_requests.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- lighttpd-1.4.11.orig/src/connections.c (revision 1092) -+++ lighttpd-1.4.11/src/connections.c (revision 1095) -@@ -1182,4 +1182,11 @@ - con->state == CON_STATE_READ_POST) { - connection_handle_read_state(srv, con); -+ /** -+ * if SSL_read() is not readin in the full packet we won't get -+ * a fdevent as the low-level has already fetched everything. -+ * -+ * we have to call the state-engine to read the rest of the packet -+ */ -+ if (con->is_readable) joblist_append(srv, con); - } - diff --git a/www-servers/lighttpd/files/1.4.11/21_all_mod_scgi_segfault.diff b/www-servers/lighttpd/files/1.4.11/21_all_mod_scgi_segfault.diff deleted file mode 100644 index 6455c569231c..000000000000 --- a/www-servers/lighttpd/files/1.4.11/21_all_mod_scgi_segfault.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- lighttpd-1.4.11.orig/src/mod_scgi.c 2006-04-05 19:29:01.000000000 +0200 -+++ lighttpd-1.4.11/src/mod_scgi.c 2006-04-05 19:27:32.000000000 +0200 -@@ -2536,7 +2536,7 @@ - return HANDLER_WAIT_FOR_FD; - } - -- log_error_write(srv, __FILE__, __LINE__, "sdsdsd", -+ log_error_write(srv, __FILE__, __LINE__, "sosdsd", - "response not sent, request sent:", hctx->wb->bytes_out, - "connection-fd:", con->fd, - "fcgi-fd:", hctx->fd); diff --git a/www-servers/lighttpd/files/1.4.11/22_all_bug606_fix_SSI_echo.diff b/www-servers/lighttpd/files/1.4.11/22_all_bug606_fix_SSI_echo.diff deleted file mode 100644 index 6af338d91dd9..000000000000 --- a/www-servers/lighttpd/files/1.4.11/22_all_bug606_fix_SSI_echo.diff +++ /dev/null @@ -1,157 +0,0 @@ ---- lighttpd-1.4.11.orig/src/mod_ssi.c Sun Apr 2 01:20:30 2006 -+++ lighttpd-1.4.11/src/mod_ssi.c.modify Sun Apr 2 01:21:05 2006 -@@ -36,6 +36,9 @@ - #include <sys/filio.h> - #endif - -+/* determine if process finished */ -+int h_finished = 0; -+ - /* init the plugin data */ - INIT_FUNC(mod_ssi_init) { - plugin_data *p; -@@ -57,7 +60,7 @@ FREE_FUNC(mod_ssi_free) { - UNUSED(srv); - - if (!p) return HANDLER_GO_ON; -- -+ - if (p->config_storage) { - size_t i; - for (i = 0; i < srv->config_context->used; i++) { -@@ -286,6 +289,37 @@ static int build_ssi_cgi_vars(server *sr - return 0; - } - -+URIHANDLER_FUNC(mod_ssi_physical_path) { -+ plugin_data *p = p_d; -+ size_t k; -+ -+ if (con->physical.path->used == 0) return HANDLER_GO_ON; -+ -+ con->loops_per_request++; -+ -+ mod_ssi_patch_connection(srv, con, p); -+ -+ for (k = 0; k < p->conf.ssi_extension->used; k++) { -+ data_string *ds = (data_string *)p->conf.ssi_extension->data[k]; -+ -+ if (ds->value->used == 0) continue; -+ -+ if (buffer_is_equal_right_len(con->physical.path, ds->value, ds->value->used - 1)) { -+ /* handle ssi-request */ -+ -+ if (mod_ssi_handle_request(srv, con, p)) { -+ /* on error */ -+ con->http_status = 500; -+ } -+ -+ return HANDLER_FINISHED; -+ } -+ } -+ -+ /* not found */ -+ return HANDLER_GO_ON; -+} -+ - static int process_ssi_stmt(server *srv, connection *con, plugin_data *p, - const char **l, size_t n) { - size_t i, ssicmd = 0; -@@ -467,7 +501,11 @@ static int process_ssi_stmt(server *srv, - if (NULL != (ds = (data_string *)array_get_element(p->ssi_cgi_env, var_val))) { - buffer_copy_string_buffer(b, ds->value); - } else { -- buffer_copy_string(b, "(none)"); -+ if (NULL != (ds = (data_string *)array_get_element(p->ssi_vars, var_val))) { -+ buffer_copy_string_buffer(b, ds->value); -+ } else { -+ buffer_copy_string(b, "(none)"); -+ } - } - - break; -@@ -481,6 +519,7 @@ static int process_ssi_stmt(server *srv, - const char * file_path = NULL, *virt_path = NULL; - struct stat st; - char *sl; -+ buffer *tmp; - - for (i = 2; i < n; i += 2) { - if (0 == strcmp(l[i], "file")) { -@@ -574,7 +613,26 @@ static int process_ssi_stmt(server *srv, - } - break; - case SSI_INCLUDE: -- chunkqueue_append_file(con->write_queue, p->stat_fn, 0, st.st_size); -+ /* do recursive SSI expansion */ -+ /* prevents infinite loop */ -+ if (con->loops_per_request > 25 || buffer_is_equal(con->physical.path, p->stat_fn)) { -+ buffer_copy_string(srv->tmp_buf, "<!-- your include directives create an infinite loop, aborting -->"); -+ chunkqueue_append_buffer(con->write_queue, srv->tmp_buf); -+ break; -+ } -+ -+ tmp = buffer_init(); -+ buffer_copy_string_buffer(tmp, con->physical.path); /* save path of current document */ -+ buffer_copy_string_buffer(con->physical.path, p->stat_fn); /* next sub-document to parse */ -+ if (mod_ssi_physical_path(srv, con, p) != HANDLER_FINISHED) { -+ /* the document was not processed, so write it as is */ -+ chunkqueue_append_file(con->write_queue, con->physical.path, 0, st.st_size); -+ } else { -+ h_finished = 1; -+ } -+ buffer_copy_string_buffer(con->physical.path, tmp); /* restore saved path */ -+ buffer_free(tmp); -+ - break; - } - } else { -@@ -897,7 +955,11 @@ static int mod_ssi_handle_request(server - - /* get a stream to the file */ - -- array_reset(p->ssi_vars); -+ if (h_finished == 1) -+ { -+ array_reset(p->ssi_vars); -+ h_finished = 0; -+ } - array_reset(p->ssi_cgi_env); - buffer_copy_string(p->timefmt, "%a, %d %b %Y %H:%M:%S %Z"); - p->sizefmt = 0; -@@ -1038,35 +1100,6 @@ static int mod_ssi_patch_connection(serv - } - #undef PATCH - --URIHANDLER_FUNC(mod_ssi_physical_path) { -- plugin_data *p = p_d; -- size_t k; -- -- if (con->physical.path->used == 0) return HANDLER_GO_ON; -- -- mod_ssi_patch_connection(srv, con, p); -- -- for (k = 0; k < p->conf.ssi_extension->used; k++) { -- data_string *ds = (data_string *)p->conf.ssi_extension->data[k]; -- -- if (ds->value->used == 0) continue; -- -- if (buffer_is_equal_right_len(con->physical.path, ds->value, ds->value->used - 1)) { -- /* handle ssi-request */ -- -- if (mod_ssi_handle_request(srv, con, p)) { -- /* on error */ -- con->http_status = 500; -- } -- -- return HANDLER_FINISHED; -- } -- } -- -- /* not found */ -- return HANDLER_GO_ON; --} -- - /* this function is called at dlopen() time and inits the callbacks */ - - int mod_ssi_plugin_init(plugin *p) { diff --git a/www-servers/lighttpd/files/1.4.11/23_all_mod_ssi_gcc-4.1.1_compile_fix.diff b/www-servers/lighttpd/files/1.4.11/23_all_mod_ssi_gcc-4.1.1_compile_fix.diff deleted file mode 100644 index 4991bc52a263..000000000000 --- a/www-servers/lighttpd/files/1.4.11/23_all_mod_ssi_gcc-4.1.1_compile_fix.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- lighttpd-1.4.11.orig/src/mod_ssi.c -+++ lighttpd-1.4.11/src/mod_ssi.c -@@ -36,6 +36,9 @@ - #include <sys/filio.h> - #endif - -+static int mod_ssi_handle_request(server *srv, connection *con, plugin_data *p); -+static int mod_ssi_patch_connection(server *srv, connection *con, plugin_data *p); -+ - /* determine if process finished */ - int h_finished = 0; - diff --git a/www-servers/lighttpd/files/1.4.13/01_all_lighttpd-1.4.13-99cpu-fix.diff b/www-servers/lighttpd/files/1.4.13/01_all_lighttpd-1.4.13-99cpu-fix.diff deleted file mode 100644 index 4b7c4494f87f..000000000000 --- a/www-servers/lighttpd/files/1.4.13/01_all_lighttpd-1.4.13-99cpu-fix.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- lighttpd-1.4.13/src/connections.c.orig 2007-01-05 10:56:08.000000000 -0800 -+++ lighttpd-1.4.13/src/connections.c 2007-01-05 10:56:23.000000000 -0800 -@@ -970,7 +970,7 @@ - } - } else { - /* a splited \r \n */ -- return -1; -+ break; - } - } - } diff --git a/www-servers/lighttpd/files/1.4.13/02_all_lighttpd-1.4.13-fcgi-auth-type.diff b/www-servers/lighttpd/files/1.4.13/02_all_lighttpd-1.4.13-fcgi-auth-type.diff deleted file mode 100644 index aa051c7e1b36..000000000000 --- a/www-servers/lighttpd/files/1.4.13/02_all_lighttpd-1.4.13-fcgi-auth-type.diff +++ /dev/null @@ -1,41 +0,0 @@ ---- lighttpd-1.4.13/src/mod_fastcgi.c 2006-10-05 03:22:32.000000000 -0700 -+++ lighttpd-1.4.13.patch/src/mod_fastcgi.c 2006-10-18 00:57:19.000000000 -0700 -@@ -1875,8 +1875,36 @@ - fcgi_env_add(p->fcgi_env, CONST_STR_LEN("REMOTE_ADDR"), s, strlen(s)); - - if (!buffer_is_empty(con->authed_user)) { -- fcgi_env_add(p->fcgi_env, CONST_STR_LEN("REMOTE_USER"), -- CONST_BUF_LEN(con->authed_user)); -+ fcgi_env_add(p->fcgi_env, CONST_STR_LEN("REMOTE_USER"), CONST_BUF_LEN(con->authed_user)); -+ -+ /* AUTH_TYPE fix by Troy Kruthoff (tkruthoff@gmail.com) -+ * section 4.1.1 of RFC 3875 (cgi spec) requires the server to set a AUTH_TYPE env -+ * declaring the type of authentication used. (see http://tools.ietf.org/html/rfc3875#page-11) -+ * -+ * I copied this code from mod_auth.c where it extracts auth info from the "Authorization" -+ * header to authenticate the user before allowing the request to proceed. I'm guessing it makes -+ * sense to re-parse the header here, as mod_auth is unaware if the request is headed for cgi/fcgi. -+ * Someone more familiar with the lighty internals should be able to quickly determine if we are -+ * better storing AUTH_TYPE on the initial parse in mod_auth. -+ */ -+ char *http_authorization = NULL; -+ data_string *ds; -+ -+ if (NULL != (ds = (data_string *)array_get_element(con->request.headers, "Authorization"))) { -+ http_authorization = ds->value->ptr; -+ } -+ -+ if (ds && ds->value && ds->value->used) { -+ char *auth_realm; -+ if (NULL != (auth_realm = strchr(http_authorization, ' '))) { -+ int auth_type_len = auth_realm - http_authorization; -+ if ((auth_type_len == 5) && (0 == strncmp(http_authorization, "Basic", auth_type_len))) { -+ fcgi_env_add(p->fcgi_env, CONST_STR_LEN("AUTH_TYPE"), CONST_STR_LEN("Basic")); -+ } else if ((auth_type_len == 6) && (0 == strncmp(http_authorization, "Digest", auth_type_len))) { -+ fcgi_env_add(p->fcgi_env, CONST_STR_LEN("AUTH_TYPE"), CONST_STR_LEN("Digest")); -+ } -+ } -+ } - } - - if (con->request.content_length > 0 && host->mode != FCGI_AUTHORIZER) { diff --git a/www-servers/lighttpd/files/1.4.13/03_all_lighttpd-1.4.11-errorlog-pipe.diff b/www-servers/lighttpd/files/1.4.13/03_all_lighttpd-1.4.11-errorlog-pipe.diff deleted file mode 100644 index c168eba74683..000000000000 --- a/www-servers/lighttpd/files/1.4.13/03_all_lighttpd-1.4.11-errorlog-pipe.diff +++ /dev/null @@ -1,179 +0,0 @@ -diff -ur lighttpd-1.4.11.orig/src/base.h lighttpd-1.4.11/src/base.h ---- lighttpd-1.4.11.orig/src/base.h 2006-01-13 06:51:04.000000000 -0800 -+++ lighttpd-1.4.11/src/base.h 2006-12-17 18:01:39.000000000 -0800 -@@ -505,7 +505,7 @@ - - /* the errorlog */ - int errorlog_fd; -- enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG } errorlog_mode; -+ enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG, ERRORLOG_PIPE } errorlog_mode; - buffer *errorlog_buf; - - fdevents *ev, *ev_ins; -diff -ur lighttpd-1.4.11.orig/src/log.c lighttpd-1.4.11/src/log.c ---- lighttpd-1.4.11.orig/src/log.c 2005-13-07 05:01:35.000000000 -0800 -+++ lighttpd-1.4.11/src/log.c 2006-12-17 18:09:43.000000000 -0800 -@@ -34,10 +34,11 @@ - /** - * open the errorlog - * -- * we have 3 possibilities: -+ * we have 4 possibilities: - * - stderr (default) - * - syslog - * - logfile -+ * - pipe - * - * if the open failed, report to the user and die - * -@@ -57,21 +58,81 @@ - srv->errorlog_mode = ERRORLOG_SYSLOG; - } else if (!buffer_is_empty(srv->srvconf.errorlog_file)) { - const char *logfile = srv->srvconf.errorlog_file->ptr; -- -- if (-1 == (srv->errorlog_fd = open(logfile, O_APPEND | O_WRONLY | O_CREAT | O_LARGEFILE, 0644))) { -- log_error_write(srv, __FILE__, __LINE__, "SSSS", -- "opening errorlog '", logfile, -- "' failed: ", strerror(errno)); -- -+ -+ if (logfile[0] == '|') { -+#ifdef HAVE_FORK -+ /* create write pipe and spawn process */ -+ -+ int to_log_fds[2]; -+ pid_t pid; -+ -+ if (pipe(to_log_fds)) { -+ log_error_write(srv, __FILE__, __LINE__, "ss", -+ "pipe failed: ", strerror(errno)); -+ return -1; -+ } -+ -+ /* fork, execve */ -+ switch (pid = fork()) { -+ case 0: -+ /* child */ -+ -+ close(STDIN_FILENO); -+ dup2(to_log_fds[0], STDIN_FILENO); -+ close(to_log_fds[0]); -+ /* not needed */ -+ close(to_log_fds[1]); -+ -+ /* we don't need the client socket */ -+ for (fd = 3; fd < 256; fd++) { -+ close(fd); -+ } -+ -+ /* exec the log-process (skip the | ) -+ * -+ */ -+ -+ execl("/bin/sh", "sh", "-c", logfile + 1, NULL); -+ -+ log_error_write(srv, __FILE__, __LINE__, "sss", -+ "spawning log-process failed: ", -+ strerror(errno), logfile + 1); -+ -+ exit(-1); -+ break; -+ case -1: -+ /* error */ -+ log_error_write(srv, __FILE__, __LINE__, "ss", "fork failed:", strerror(errno)); -+ break; -+ default: -+ close(to_log_fds[0]); -+ -+ srv->errorlog_fd = to_log_fds[1]; -+ -+ break; -+ } -+ srv->errorlog_mode = ERRORLOG_PIPE; -+#else -+ log_error_write(srv, __FILE__, __LINE__, "SSS", -+ "opening errorlog '", logfile,"' impossible"); - return -1; -- } -+#endif -+ } else { -+ if (-1 == (srv->errorlog_fd = open(logfile, O_APPEND | O_WRONLY | O_CREAT | O_LARGEFILE, 0644))) { -+ log_error_write(srv, __FILE__, __LINE__, "SSSS", -+ "opening errorlog '", logfile, -+ "' failed: ", strerror(errno)); -+ -+ return -1; -+ } -+ srv->errorlog_mode = ERRORLOG_FILE; -+ } - #ifdef FD_CLOEXEC -- /* close fd on exec (cgi) */ -- fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); -+ /* close fd on exec (cgi) */ -+ fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); - #endif -- srv->errorlog_mode = ERRORLOG_FILE; -- } -- -+ } -+ - log_error_write(srv, __FILE__, __LINE__, "s", "server started"); - - #ifdef HAVE_VALGRIND_VALGRIND_H -@@ -99,7 +160,7 @@ - */ - - int log_error_cycle(server *srv) { -- /* only cycle if we are not in syslog-mode */ -+ /* only cycle if the error log is a file */ - - if (srv->errorlog_mode == ERRORLOG_FILE) { - const char *logfile = srv->srvconf.errorlog_file->ptr; -@@ -135,6 +196,7 @@ - log_error_write(srv, __FILE__, __LINE__, "s", "server stopped"); - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: /* fall through */ - case ERRORLOG_FILE: - close(srv->errorlog_fd); - break; -@@ -154,6 +216,7 @@ - va_list ap; - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: - case ERRORLOG_FILE: - case ERRORLOG_STDERR: - /* cache the generated timestamp */ -@@ -238,6 +301,7 @@ - va_end(ap); - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: /* fall through */ - case ERRORLOG_FILE: - BUFFER_APPEND_STRING_CONST(srv->errorlog_buf, "\n"); - write(srv->errorlog_fd, srv->errorlog_buf->ptr, srv->errorlog_buf->used - 1); -diff -ur lighttpd-1.4.11.orig/src/mod_cgi.c lighttpd-1.4.11/src/mod_cgi.c ---- lighttpd-1.4.11.orig/src/mod_cgi.c 2006-02-22 05:15:10.000000000 -0800 -+++ lighttpd-1.4.11/src/mod_cgi.c 2006-12-17 18:01:39.000000000 -0800 -@@ -750,7 +750,7 @@ - * - * we feed the stderr of the CGI to our errorlog, if possible - */ -- if (srv->errorlog_mode == ERRORLOG_FILE) { -+ if ((srv->errorlog_mode == ERRORLOG_FILE) || (srv->errorlog_mode == ERRORLOG_PIPE)) { - close(STDERR_FILENO); - dup2(srv->errorlog_fd, STDERR_FILENO); - } -diff -ur lighttpd-1.4.11.orig/src/mod_rrdtool.c lighttpd-1.4.11/src/mod_rrdtool.c ---- lighttpd-1.4.11.orig/src/mod_rrdtool.c 2005-08-21 15:52:24.000000000 -0700 -+++ lighttpd-1.4.11/src/mod_rrdtool.c 2006-12-17 18:01:39.000000000 -0800 -@@ -134,7 +134,7 @@ - - close(STDERR_FILENO); - -- if (srv->errorlog_mode == ERRORLOG_FILE) { -+ if ((srv->errorlog_mode == ERRORLOG_FILE) || (srv->errorlog_mode == ERRORLOG_PIPE)) { - dup2(srv->errorlog_fd, STDERR_FILENO); - close(srv->errorlog_fd); - } diff --git a/www-servers/lighttpd/files/1.4.13/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff b/www-servers/lighttpd/files/1.4.13/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff deleted file mode 100644 index 259ad4b279a5..000000000000 --- a/www-servers/lighttpd/files/1.4.13/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- lighttpd-1.4.13.old/src/Makefile.am 2006-10-09 12:19:34.000000000 -0400 -+++ lighttpd-1.4.13/src/Makefile.am 2007-03-26 10:10:26.000000000 -0400 -@@ -213,6 +213,7 @@ - mod_auth_la_SOURCES = mod_auth.c http_auth_digest.c http_auth.c - mod_auth_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined - mod_auth_la_LIBADD = $(CRYPT_LIB) $(LDAP_LIB) $(LBER_LIB) $(common_libadd) -+mod_auth_la_CFLAGS = -DLDAP_DEPRECATED - - lib_LTLIBRARIES += mod_rewrite.la - mod_rewrite_la_SOURCES = mod_rewrite.c diff --git a/www-servers/lighttpd/files/1.4.15-r1/03_all_lighttpd-1.4.11-errorlog-pipe.diff b/www-servers/lighttpd/files/1.4.15-r1/03_all_lighttpd-1.4.11-errorlog-pipe.diff deleted file mode 100644 index c168eba74683..000000000000 --- a/www-servers/lighttpd/files/1.4.15-r1/03_all_lighttpd-1.4.11-errorlog-pipe.diff +++ /dev/null @@ -1,179 +0,0 @@ -diff -ur lighttpd-1.4.11.orig/src/base.h lighttpd-1.4.11/src/base.h ---- lighttpd-1.4.11.orig/src/base.h 2006-01-13 06:51:04.000000000 -0800 -+++ lighttpd-1.4.11/src/base.h 2006-12-17 18:01:39.000000000 -0800 -@@ -505,7 +505,7 @@ - - /* the errorlog */ - int errorlog_fd; -- enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG } errorlog_mode; -+ enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG, ERRORLOG_PIPE } errorlog_mode; - buffer *errorlog_buf; - - fdevents *ev, *ev_ins; -diff -ur lighttpd-1.4.11.orig/src/log.c lighttpd-1.4.11/src/log.c ---- lighttpd-1.4.11.orig/src/log.c 2005-13-07 05:01:35.000000000 -0800 -+++ lighttpd-1.4.11/src/log.c 2006-12-17 18:09:43.000000000 -0800 -@@ -34,10 +34,11 @@ - /** - * open the errorlog - * -- * we have 3 possibilities: -+ * we have 4 possibilities: - * - stderr (default) - * - syslog - * - logfile -+ * - pipe - * - * if the open failed, report to the user and die - * -@@ -57,21 +58,81 @@ - srv->errorlog_mode = ERRORLOG_SYSLOG; - } else if (!buffer_is_empty(srv->srvconf.errorlog_file)) { - const char *logfile = srv->srvconf.errorlog_file->ptr; -- -- if (-1 == (srv->errorlog_fd = open(logfile, O_APPEND | O_WRONLY | O_CREAT | O_LARGEFILE, 0644))) { -- log_error_write(srv, __FILE__, __LINE__, "SSSS", -- "opening errorlog '", logfile, -- "' failed: ", strerror(errno)); -- -+ -+ if (logfile[0] == '|') { -+#ifdef HAVE_FORK -+ /* create write pipe and spawn process */ -+ -+ int to_log_fds[2]; -+ pid_t pid; -+ -+ if (pipe(to_log_fds)) { -+ log_error_write(srv, __FILE__, __LINE__, "ss", -+ "pipe failed: ", strerror(errno)); -+ return -1; -+ } -+ -+ /* fork, execve */ -+ switch (pid = fork()) { -+ case 0: -+ /* child */ -+ -+ close(STDIN_FILENO); -+ dup2(to_log_fds[0], STDIN_FILENO); -+ close(to_log_fds[0]); -+ /* not needed */ -+ close(to_log_fds[1]); -+ -+ /* we don't need the client socket */ -+ for (fd = 3; fd < 256; fd++) { -+ close(fd); -+ } -+ -+ /* exec the log-process (skip the | ) -+ * -+ */ -+ -+ execl("/bin/sh", "sh", "-c", logfile + 1, NULL); -+ -+ log_error_write(srv, __FILE__, __LINE__, "sss", -+ "spawning log-process failed: ", -+ strerror(errno), logfile + 1); -+ -+ exit(-1); -+ break; -+ case -1: -+ /* error */ -+ log_error_write(srv, __FILE__, __LINE__, "ss", "fork failed:", strerror(errno)); -+ break; -+ default: -+ close(to_log_fds[0]); -+ -+ srv->errorlog_fd = to_log_fds[1]; -+ -+ break; -+ } -+ srv->errorlog_mode = ERRORLOG_PIPE; -+#else -+ log_error_write(srv, __FILE__, __LINE__, "SSS", -+ "opening errorlog '", logfile,"' impossible"); - return -1; -- } -+#endif -+ } else { -+ if (-1 == (srv->errorlog_fd = open(logfile, O_APPEND | O_WRONLY | O_CREAT | O_LARGEFILE, 0644))) { -+ log_error_write(srv, __FILE__, __LINE__, "SSSS", -+ "opening errorlog '", logfile, -+ "' failed: ", strerror(errno)); -+ -+ return -1; -+ } -+ srv->errorlog_mode = ERRORLOG_FILE; -+ } - #ifdef FD_CLOEXEC -- /* close fd on exec (cgi) */ -- fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); -+ /* close fd on exec (cgi) */ -+ fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); - #endif -- srv->errorlog_mode = ERRORLOG_FILE; -- } -- -+ } -+ - log_error_write(srv, __FILE__, __LINE__, "s", "server started"); - - #ifdef HAVE_VALGRIND_VALGRIND_H -@@ -99,7 +160,7 @@ - */ - - int log_error_cycle(server *srv) { -- /* only cycle if we are not in syslog-mode */ -+ /* only cycle if the error log is a file */ - - if (srv->errorlog_mode == ERRORLOG_FILE) { - const char *logfile = srv->srvconf.errorlog_file->ptr; -@@ -135,6 +196,7 @@ - log_error_write(srv, __FILE__, __LINE__, "s", "server stopped"); - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: /* fall through */ - case ERRORLOG_FILE: - close(srv->errorlog_fd); - break; -@@ -154,6 +216,7 @@ - va_list ap; - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: - case ERRORLOG_FILE: - case ERRORLOG_STDERR: - /* cache the generated timestamp */ -@@ -238,6 +301,7 @@ - va_end(ap); - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: /* fall through */ - case ERRORLOG_FILE: - BUFFER_APPEND_STRING_CONST(srv->errorlog_buf, "\n"); - write(srv->errorlog_fd, srv->errorlog_buf->ptr, srv->errorlog_buf->used - 1); -diff -ur lighttpd-1.4.11.orig/src/mod_cgi.c lighttpd-1.4.11/src/mod_cgi.c ---- lighttpd-1.4.11.orig/src/mod_cgi.c 2006-02-22 05:15:10.000000000 -0800 -+++ lighttpd-1.4.11/src/mod_cgi.c 2006-12-17 18:01:39.000000000 -0800 -@@ -750,7 +750,7 @@ - * - * we feed the stderr of the CGI to our errorlog, if possible - */ -- if (srv->errorlog_mode == ERRORLOG_FILE) { -+ if ((srv->errorlog_mode == ERRORLOG_FILE) || (srv->errorlog_mode == ERRORLOG_PIPE)) { - close(STDERR_FILENO); - dup2(srv->errorlog_fd, STDERR_FILENO); - } -diff -ur lighttpd-1.4.11.orig/src/mod_rrdtool.c lighttpd-1.4.11/src/mod_rrdtool.c ---- lighttpd-1.4.11.orig/src/mod_rrdtool.c 2005-08-21 15:52:24.000000000 -0700 -+++ lighttpd-1.4.11/src/mod_rrdtool.c 2006-12-17 18:01:39.000000000 -0800 -@@ -134,7 +134,7 @@ - - close(STDERR_FILENO); - -- if (srv->errorlog_mode == ERRORLOG_FILE) { -+ if ((srv->errorlog_mode == ERRORLOG_FILE) || (srv->errorlog_mode == ERRORLOG_PIPE)) { - dup2(srv->errorlog_fd, STDERR_FILENO); - close(srv->errorlog_fd); - } diff --git a/www-servers/lighttpd/files/1.4.15-r1/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff b/www-servers/lighttpd/files/1.4.15-r1/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff deleted file mode 100644 index 259ad4b279a5..000000000000 --- a/www-servers/lighttpd/files/1.4.15-r1/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- lighttpd-1.4.13.old/src/Makefile.am 2006-10-09 12:19:34.000000000 -0400 -+++ lighttpd-1.4.13/src/Makefile.am 2007-03-26 10:10:26.000000000 -0400 -@@ -213,6 +213,7 @@ - mod_auth_la_SOURCES = mod_auth.c http_auth_digest.c http_auth.c - mod_auth_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined - mod_auth_la_LIBADD = $(CRYPT_LIB) $(LDAP_LIB) $(LBER_LIB) $(common_libadd) -+mod_auth_la_CFLAGS = -DLDAP_DEPRECATED - - lib_LTLIBRARIES += mod_rewrite.la - mod_rewrite_la_SOURCES = mod_rewrite.c diff --git a/www-servers/lighttpd/files/1.4.15-r1/07_all_lighttpd-1.4.15-duplicated_headers_with_folding_crash.diff b/www-servers/lighttpd/files/1.4.15-r1/07_all_lighttpd-1.4.15-duplicated_headers_with_folding_crash.diff deleted file mode 100644 index 6bb175a657b1..000000000000 --- a/www-servers/lighttpd/files/1.4.15-r1/07_all_lighttpd-1.4.15-duplicated_headers_with_folding_crash.diff +++ /dev/null @@ -1,122 +0,0 @@ -Index: src/request.c -=================================================================== ---- src/request.c (revision 1868) -+++ src/request.c (revision 1870) -@@ -284,8 +284,6 @@ - - int done = 0; - -- data_string *ds = NULL; -- - /* - * Request: "^(GET|POST|HEAD) ([^ ]+(\\?[^ ]+|)) (HTTP/1\\.[01])$" - * Option : "^([-a-zA-Z]+): (.+)$" -@@ -715,12 +713,24 @@ - switch(*cur) { - case '\r': - if (con->parse_request->ptr[i+1] == '\n') { -+ data_string *ds = NULL; -+ - /* End of Headerline */ - con->parse_request->ptr[i] = '\0'; - con->parse_request->ptr[i+1] = '\0'; - - if (in_folding) { -- if (!ds) { -+ buffer *key_b; -+ /** -+ * we use a evil hack to handle the line-folding -+ * -+ * As array_insert_unique() deletes 'ds' in the case of a duplicate -+ * ds points somewhere and we get a evil crash. As a solution we keep the old -+ * "key" and get the current value from the hash and append us -+ * -+ * */ -+ -+ if (!key || !key_len) { - /* 400 */ - - if (srv->srvconf.log_request_header_on_error) { -@@ -737,7 +747,15 @@ - con->response.keep_alive = 0; - return 0; - } -- buffer_append_string(ds->value, value); -+ -+ key_b = buffer_init(); -+ buffer_copy_string_len(key_b, key, key_len); -+ -+ if (NULL != (ds = (data_string *)array_get_element(con->request.headers, key_b->ptr))) { -+ buffer_append_string(ds->value, value); -+ } -+ -+ buffer_free(key_b); - } else { - int s_len; - key = con->parse_request->ptr + first; -@@ -969,7 +987,12 @@ - first = i+1; - is_key = 1; - value = 0; -- key_len = 0; -+#if 0 -+ /** -+ * for Bug 1230 keep the key_len a live -+ */ -+ key_len = 0; -+#endif - in_folding = 0; - } else { - if (srv->srvconf.log_request_header_on_error) { -Index: tests/core-request.t -=================================================================== ---- tests/core-request.t (revision 1868) -+++ tests/core-request.t (revision 1870) -@@ -8,7 +8,7 @@ - - use strict; - use IO::Socket; --use Test::More tests => 33; -+use Test::More tests => 36; - use LightyTest; - - my $tf = LightyTest->new(); -@@ -273,6 +273,38 @@ - $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; - ok($tf->handle_http($t) == 0, 'uppercase filenames'); - -+$t->{REQUEST} = ( <<EOF -+GET / HTTP/1.0 -+Location: foo -+Location: foobar -+ baz -+EOF -+ ); -+$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; -+ok($tf->handle_http($t) == 0, '#1232 - duplicate headers with line-wrapping'); - -+$t->{REQUEST} = ( <<EOF -+GET / HTTP/1.0 -+Location: -+Location: foobar -+ baz -+EOF -+ ); -+$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; -+ok($tf->handle_http($t) == 0, '#1232 - duplicate headers with line-wrapping - test 2'); -+ -+$t->{REQUEST} = ( <<EOF -+GET / HTTP/1.0 -+A: -+Location: foobar -+ baz -+EOF -+ ); -+$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; -+ok($tf->handle_http($t) == 0, '#1232 - duplicate headers with line-wrapping - test 3'); -+ -+ -+ -+ - ok($tf->stop_proc == 0, "Stopping lighttpd"); - diff --git a/www-servers/lighttpd/files/1.4.15-r1/08_all_lighttpd-1.4.15-mod_acces_bypass.diff b/www-servers/lighttpd/files/1.4.15-r1/08_all_lighttpd-1.4.15-mod_acces_bypass.diff deleted file mode 100644 index 3165cd7b7012..000000000000 --- a/www-servers/lighttpd/files/1.4.15-r1/08_all_lighttpd-1.4.15-mod_acces_bypass.diff +++ /dev/null @@ -1,129 +0,0 @@ -Index: src/mod_access.c -=================================================================== ---- src/mod_access.c (revision 1870) -+++ src/mod_access.c (revision 1871) -@@ -111,6 +111,15 @@ - } - #undef PATCH - -+/** -+ * URI handler -+ * -+ * we will get called twice: -+ * - after the clean up of the URL and -+ * - after the pathinfo checks are done -+ * -+ * this handles the issue of trailing slashes -+ */ - URIHANDLER_FUNC(mod_access_uri_handler) { - plugin_data *p = p_d; - int s_len; -@@ -122,28 +131,41 @@ - - s_len = con->uri.path->used - 1; - -+ if (con->conf.log_request_handling) { -+ log_error_write(srv, __FILE__, __LINE__, "s", -+ "-- mod_access_uri_handler called"); -+ } -+ - for (k = 0; k < p->conf.access_deny->used; k++) { - data_string *ds = (data_string *)p->conf.access_deny->data[k]; - int ct_len = ds->value->used - 1; -+ int denied = 0; - -+ - if (ct_len > s_len) continue; -- - if (ds->value->used == 0) continue; - - /* if we have a case-insensitive FS we have to lower-case the URI here too */ - - if (con->conf.force_lowercase_filenames) { - if (0 == strncasecmp(con->uri.path->ptr + s_len - ct_len, ds->value->ptr, ct_len)) { -- con->http_status = 403; -- -- return HANDLER_FINISHED; -+ denied = 1; - } - } else { - if (0 == strncmp(con->uri.path->ptr + s_len - ct_len, ds->value->ptr, ct_len)) { -- con->http_status = 403; -+ denied = 1; -+ } -+ } - -- return HANDLER_FINISHED; -+ if (denied) { -+ con->http_status = 403; -+ -+ if (con->conf.log_request_handling) { -+ log_error_write(srv, __FILE__, __LINE__, "sb", -+ "url denied as we match:", ds->value); - } -+ -+ return HANDLER_FINISHED; - } - } - -@@ -158,7 +180,8 @@ - - p->init = mod_access_init; - p->set_defaults = mod_access_set_defaults; -- p->handle_uri_clean = mod_access_uri_handler; -+ p->handle_uri_clean = mod_access_uri_handler; -+ p->handle_subrequest_start = mod_access_uri_handler; - p->cleanup = mod_access_free; - - p->data = NULL; -Index: tests/mod-access.t -=================================================================== ---- tests/mod-access.t (revision 1870) -+++ tests/mod-access.t (revision 1871) -@@ -8,7 +8,7 @@ - - use strict; - use IO::Socket; --use Test::More tests => 3; -+use Test::More tests => 4; - use LightyTest; - - my $tf = LightyTest->new(); -@@ -23,5 +23,12 @@ - $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; - ok($tf->handle_http($t) == 0, 'forbid access to ...~'); - -+$t->{REQUEST} = ( <<EOF -+GET /index.html~/ HTTP/1.0 -+EOF -+ ); -+$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; -+ok($tf->handle_http($t) == 0, '#1230 - forbid access to ...~ - trailing slash'); -+ - ok($tf->stop_proc == 0, "Stopping lighttpd"); - -Index: tests/prepare.sh -=================================================================== ---- tests/prepare.sh (revision 1870) -+++ tests/prepare.sh (revision 1871) -@@ -25,6 +25,7 @@ - # copy everything into the right places - cp $srcdir/docroot/www/*.html \ - $srcdir/docroot/www/*.php \ -+ $srcdir/docroot/www/*.html~ \ - $srcdir/docroot/www/*.pl \ - $srcdir/docroot/www/*.fcgi \ - $srcdir/docroot/www/*.shtml \ -Index: tests/docroot/www/index.html~ -=================================================================== -Index: tests/docroot/www/Makefile.am -=================================================================== ---- tests/docroot/www/Makefile.am (revision 1870) -+++ tests/docroot/www/Makefile.am (revision 1871) -@@ -1,5 +1,5 @@ - EXTRA_DIST=cgi.php cgi.pl dummydir index.html index.txt phpinfo.php \ - redirect.php cgi-pathinfo.pl get-env.php get-server-env.php \ - nph-status.pl prefix.fcgi get-header.pl ssi.shtml get-post-len.pl \ -- exec-date.shtml -+ exec-date.shtml index.html~ - SUBDIRS=go indexfile expire diff --git a/www-servers/lighttpd/files/1.4.15-r1/09_all_lighttpd-1.4.15-mod_fastcgi_local_dos.diff b/www-servers/lighttpd/files/1.4.15-r1/09_all_lighttpd-1.4.15-mod_fastcgi_local_dos.diff deleted file mode 100644 index 7c8f4e91c1e6..000000000000 --- a/www-servers/lighttpd/files/1.4.15-r1/09_all_lighttpd-1.4.15-mod_fastcgi_local_dos.diff +++ /dev/null @@ -1,12 +0,0 @@ -Index: src/mod_fastcgi.c -=================================================================== ---- src/mod_fastcgi.c (revision 1878) -+++ src/mod_fastcgi.c (revision 1879) -@@ -2440,7 +2440,6 @@ - b->used = r + 1; /* one extra for the fake \0 */ - b->ptr[b->used - 1] = '\0'; - } else { -- if (errno == EAGAIN) return 0; - log_error_write(srv, __FILE__, __LINE__, "ssdsb", - "unexpected end-of-file (perhaps the fastcgi process died):", - "pid:", proc->pid, diff --git a/www-servers/lighttpd/files/1.4.15-r1/10_all_lighttpd-1.4.15-mod_scgi_crash.diff b/www-servers/lighttpd/files/1.4.15-r1/10_all_lighttpd-1.4.15-mod_scgi_crash.diff deleted file mode 100644 index f5bb6a128b1b..000000000000 --- a/www-servers/lighttpd/files/1.4.15-r1/10_all_lighttpd-1.4.15-mod_scgi_crash.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nura lighttpd-1.4.15/src/mod_scgi.c lighttpd-1.4.15-scgi/src/mod_scgi.c ---- lighttpd-1.4.15/src/mod_scgi.c 2007-02-08 13:34:45.000000000 -0300 -+++ lighttpd-1.4.15-scgi/src/mod_scgi.c 2007-07-20 10:35:41.000000000 -0300 -@@ -2536,7 +2536,7 @@ - return HANDLER_WAIT_FOR_FD; - } - -- log_error_write(srv, __FILE__, __LINE__, "sdsdsd", -+ log_error_write(srv, __FILE__, __LINE__, "sosdsd", - "response not sent, request sent:", hctx->wb->bytes_out, - "connection-fd:", con->fd, - "fcgi-fd:", hctx->fd); diff --git a/www-servers/lighttpd/files/1.4.15/03_all_lighttpd-1.4.11-errorlog-pipe.diff b/www-servers/lighttpd/files/1.4.15/03_all_lighttpd-1.4.11-errorlog-pipe.diff deleted file mode 100644 index c168eba74683..000000000000 --- a/www-servers/lighttpd/files/1.4.15/03_all_lighttpd-1.4.11-errorlog-pipe.diff +++ /dev/null @@ -1,179 +0,0 @@ -diff -ur lighttpd-1.4.11.orig/src/base.h lighttpd-1.4.11/src/base.h ---- lighttpd-1.4.11.orig/src/base.h 2006-01-13 06:51:04.000000000 -0800 -+++ lighttpd-1.4.11/src/base.h 2006-12-17 18:01:39.000000000 -0800 -@@ -505,7 +505,7 @@ - - /* the errorlog */ - int errorlog_fd; -- enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG } errorlog_mode; -+ enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG, ERRORLOG_PIPE } errorlog_mode; - buffer *errorlog_buf; - - fdevents *ev, *ev_ins; -diff -ur lighttpd-1.4.11.orig/src/log.c lighttpd-1.4.11/src/log.c ---- lighttpd-1.4.11.orig/src/log.c 2005-13-07 05:01:35.000000000 -0800 -+++ lighttpd-1.4.11/src/log.c 2006-12-17 18:09:43.000000000 -0800 -@@ -34,10 +34,11 @@ - /** - * open the errorlog - * -- * we have 3 possibilities: -+ * we have 4 possibilities: - * - stderr (default) - * - syslog - * - logfile -+ * - pipe - * - * if the open failed, report to the user and die - * -@@ -57,21 +58,81 @@ - srv->errorlog_mode = ERRORLOG_SYSLOG; - } else if (!buffer_is_empty(srv->srvconf.errorlog_file)) { - const char *logfile = srv->srvconf.errorlog_file->ptr; -- -- if (-1 == (srv->errorlog_fd = open(logfile, O_APPEND | O_WRONLY | O_CREAT | O_LARGEFILE, 0644))) { -- log_error_write(srv, __FILE__, __LINE__, "SSSS", -- "opening errorlog '", logfile, -- "' failed: ", strerror(errno)); -- -+ -+ if (logfile[0] == '|') { -+#ifdef HAVE_FORK -+ /* create write pipe and spawn process */ -+ -+ int to_log_fds[2]; -+ pid_t pid; -+ -+ if (pipe(to_log_fds)) { -+ log_error_write(srv, __FILE__, __LINE__, "ss", -+ "pipe failed: ", strerror(errno)); -+ return -1; -+ } -+ -+ /* fork, execve */ -+ switch (pid = fork()) { -+ case 0: -+ /* child */ -+ -+ close(STDIN_FILENO); -+ dup2(to_log_fds[0], STDIN_FILENO); -+ close(to_log_fds[0]); -+ /* not needed */ -+ close(to_log_fds[1]); -+ -+ /* we don't need the client socket */ -+ for (fd = 3; fd < 256; fd++) { -+ close(fd); -+ } -+ -+ /* exec the log-process (skip the | ) -+ * -+ */ -+ -+ execl("/bin/sh", "sh", "-c", logfile + 1, NULL); -+ -+ log_error_write(srv, __FILE__, __LINE__, "sss", -+ "spawning log-process failed: ", -+ strerror(errno), logfile + 1); -+ -+ exit(-1); -+ break; -+ case -1: -+ /* error */ -+ log_error_write(srv, __FILE__, __LINE__, "ss", "fork failed:", strerror(errno)); -+ break; -+ default: -+ close(to_log_fds[0]); -+ -+ srv->errorlog_fd = to_log_fds[1]; -+ -+ break; -+ } -+ srv->errorlog_mode = ERRORLOG_PIPE; -+#else -+ log_error_write(srv, __FILE__, __LINE__, "SSS", -+ "opening errorlog '", logfile,"' impossible"); - return -1; -- } -+#endif -+ } else { -+ if (-1 == (srv->errorlog_fd = open(logfile, O_APPEND | O_WRONLY | O_CREAT | O_LARGEFILE, 0644))) { -+ log_error_write(srv, __FILE__, __LINE__, "SSSS", -+ "opening errorlog '", logfile, -+ "' failed: ", strerror(errno)); -+ -+ return -1; -+ } -+ srv->errorlog_mode = ERRORLOG_FILE; -+ } - #ifdef FD_CLOEXEC -- /* close fd on exec (cgi) */ -- fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); -+ /* close fd on exec (cgi) */ -+ fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); - #endif -- srv->errorlog_mode = ERRORLOG_FILE; -- } -- -+ } -+ - log_error_write(srv, __FILE__, __LINE__, "s", "server started"); - - #ifdef HAVE_VALGRIND_VALGRIND_H -@@ -99,7 +160,7 @@ - */ - - int log_error_cycle(server *srv) { -- /* only cycle if we are not in syslog-mode */ -+ /* only cycle if the error log is a file */ - - if (srv->errorlog_mode == ERRORLOG_FILE) { - const char *logfile = srv->srvconf.errorlog_file->ptr; -@@ -135,6 +196,7 @@ - log_error_write(srv, __FILE__, __LINE__, "s", "server stopped"); - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: /* fall through */ - case ERRORLOG_FILE: - close(srv->errorlog_fd); - break; -@@ -154,6 +216,7 @@ - va_list ap; - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: - case ERRORLOG_FILE: - case ERRORLOG_STDERR: - /* cache the generated timestamp */ -@@ -238,6 +301,7 @@ - va_end(ap); - - switch(srv->errorlog_mode) { -+ case ERRORLOG_PIPE: /* fall through */ - case ERRORLOG_FILE: - BUFFER_APPEND_STRING_CONST(srv->errorlog_buf, "\n"); - write(srv->errorlog_fd, srv->errorlog_buf->ptr, srv->errorlog_buf->used - 1); -diff -ur lighttpd-1.4.11.orig/src/mod_cgi.c lighttpd-1.4.11/src/mod_cgi.c ---- lighttpd-1.4.11.orig/src/mod_cgi.c 2006-02-22 05:15:10.000000000 -0800 -+++ lighttpd-1.4.11/src/mod_cgi.c 2006-12-17 18:01:39.000000000 -0800 -@@ -750,7 +750,7 @@ - * - * we feed the stderr of the CGI to our errorlog, if possible - */ -- if (srv->errorlog_mode == ERRORLOG_FILE) { -+ if ((srv->errorlog_mode == ERRORLOG_FILE) || (srv->errorlog_mode == ERRORLOG_PIPE)) { - close(STDERR_FILENO); - dup2(srv->errorlog_fd, STDERR_FILENO); - } -diff -ur lighttpd-1.4.11.orig/src/mod_rrdtool.c lighttpd-1.4.11/src/mod_rrdtool.c ---- lighttpd-1.4.11.orig/src/mod_rrdtool.c 2005-08-21 15:52:24.000000000 -0700 -+++ lighttpd-1.4.11/src/mod_rrdtool.c 2006-12-17 18:01:39.000000000 -0800 -@@ -134,7 +134,7 @@ - - close(STDERR_FILENO); - -- if (srv->errorlog_mode == ERRORLOG_FILE) { -+ if ((srv->errorlog_mode == ERRORLOG_FILE) || (srv->errorlog_mode == ERRORLOG_PIPE)) { - dup2(srv->errorlog_fd, STDERR_FILENO); - close(srv->errorlog_fd); - } diff --git a/www-servers/lighttpd/files/1.4.15/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff b/www-servers/lighttpd/files/1.4.15/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff deleted file mode 100644 index 259ad4b279a5..000000000000 --- a/www-servers/lighttpd/files/1.4.15/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- lighttpd-1.4.13.old/src/Makefile.am 2006-10-09 12:19:34.000000000 -0400 -+++ lighttpd-1.4.13/src/Makefile.am 2007-03-26 10:10:26.000000000 -0400 -@@ -213,6 +213,7 @@ - mod_auth_la_SOURCES = mod_auth.c http_auth_digest.c http_auth.c - mod_auth_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined - mod_auth_la_LIBADD = $(CRYPT_LIB) $(LDAP_LIB) $(LBER_LIB) $(common_libadd) -+mod_auth_la_CFLAGS = -DLDAP_DEPRECATED - - lib_LTLIBRARIES += mod_rewrite.la - mod_rewrite_la_SOURCES = mod_rewrite.c diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.11 b/www-servers/lighttpd/files/digest-lighttpd-1.4.11 deleted file mode 100644 index 313e29e22093..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.11 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 f55eebb9815c94a7de35906bb557ecd3 lighttpd-1.4.11.tar.gz 781656 -RMD160 0434e6c09383f1ad443d985fd168a29f6f132d1f lighttpd-1.4.11.tar.gz 781656 -SHA256 7782ac82af8ea8d14df5d35b6668c0d45c00f3ba43a6203c29c7fe7dfe98999c lighttpd-1.4.11.tar.gz 781656 diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.13 b/www-servers/lighttpd/files/digest-lighttpd-1.4.13 deleted file mode 100644 index 7a885e91935a..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.13 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 d775d6478391b95d841a1018c8db0b95 lighttpd-1.4.13.tar.gz 797813 -RMD160 4e67e42dc3692d50c044561cc903de7b906f260c lighttpd-1.4.13.tar.gz 797813 -SHA256 62d5997fdb41afa9400adcdb040d04a1f5fa950045df96e3e3f593e8f0de5739 lighttpd-1.4.13.tar.gz 797813 diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r1 b/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r1 deleted file mode 100644 index 7a885e91935a..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r1 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 d775d6478391b95d841a1018c8db0b95 lighttpd-1.4.13.tar.gz 797813 -RMD160 4e67e42dc3692d50c044561cc903de7b906f260c lighttpd-1.4.13.tar.gz 797813 -SHA256 62d5997fdb41afa9400adcdb040d04a1f5fa950045df96e3e3f593e8f0de5739 lighttpd-1.4.13.tar.gz 797813 diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r2 b/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r2 deleted file mode 100644 index 7a885e91935a..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r2 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 d775d6478391b95d841a1018c8db0b95 lighttpd-1.4.13.tar.gz 797813 -RMD160 4e67e42dc3692d50c044561cc903de7b906f260c lighttpd-1.4.13.tar.gz 797813 -SHA256 62d5997fdb41afa9400adcdb040d04a1f5fa950045df96e3e3f593e8f0de5739 lighttpd-1.4.13.tar.gz 797813 diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r3 b/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r3 deleted file mode 100644 index 7a885e91935a..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.13-r3 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 d775d6478391b95d841a1018c8db0b95 lighttpd-1.4.13.tar.gz 797813 -RMD160 4e67e42dc3692d50c044561cc903de7b906f260c lighttpd-1.4.13.tar.gz 797813 -SHA256 62d5997fdb41afa9400adcdb040d04a1f5fa950045df96e3e3f593e8f0de5739 lighttpd-1.4.13.tar.gz 797813 diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.15 b/www-servers/lighttpd/files/digest-lighttpd-1.4.15 deleted file mode 100644 index 0b575e222c44..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.15 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 b994b8c359da578dec073cae52c4924f lighttpd-1.4.15.tar.bz2 591304 -RMD160 6a0f7a498b2815c2eb576917e88775a8e16aad5c lighttpd-1.4.15.tar.bz2 591304 -SHA256 75128e53231c69a22c94ad0a01da974eaa266b21668c1354f71ad07e5f94d9cc lighttpd-1.4.15.tar.bz2 591304 diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.15-r1 b/www-servers/lighttpd/files/digest-lighttpd-1.4.15-r1 deleted file mode 100644 index 0b575e222c44..000000000000 --- a/www-servers/lighttpd/files/digest-lighttpd-1.4.15-r1 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 b994b8c359da578dec073cae52c4924f lighttpd-1.4.15.tar.bz2 591304 -RMD160 6a0f7a498b2815c2eb576917e88775a8e16aad5c lighttpd-1.4.15.tar.bz2 591304 -SHA256 75128e53231c69a22c94ad0a01da974eaa266b21668c1354f71ad07e5f94d9cc lighttpd-1.4.15.tar.bz2 591304 diff --git a/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r1 b/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r1 deleted file mode 100644 index 464ad7746ddb..000000000000 --- a/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r1 +++ /dev/null @@ -1,71 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r1,v 1.2 2007/01/09 20:56:24 robbat2 Exp $ - -opts="depend checkconfig start stop reload graceful" - -depend() { - need net - use mysql logger spawn-fcgi ldap slapd - after famd - after sshd -} - -checkconfig() { - if [[ ! -f ${LIGHTTPD_CONF} ]] ; then - ewarn "${LIGHTTPD_CONF} does not exist." - return 1 - fi - - /usr/sbin/lighttpd -t -f ${LIGHTTPD_CONF} >/dev/null -} - -start() { - checkconfig || return 1 - - ebegin "Starting lighttpd" - start-stop-daemon --start --quiet \ - --background --pidfile ${LIGHTTPD_PID} \ - --exec /usr/sbin/lighttpd -- -f ${LIGHTTPD_CONF} - eend $? -} - -stop() { - local rv=0 - ebegin "Stopping lighttpd" - if start-stop-daemon --stop --quiet --pidfile ${LIGHTTPD_PID} \ - --signal 2 ; then - rm -f ${LIGHTTPD_PID} - else - rv=1 - fi - eend $rv -} - -reload() { - if [ ! -f ${LIGHTTPD_PID} ]; then - eerror "lighttpd isn't running" - return 1 - fi - checkconfig || return 1 - ebegin "Re-opening lighttpd log files" - kill -HUP $(<${LIGHTTPD_PID}) &>/dev/null - eend $? -} - -graceful() { - if ! service_started "${myservice}" ; then - eerror "Lighttpd is not running! Please start it before trying to reload it." - else - checkconfig || return 1 - ebegin "Gracefully stopping lighttpd" - ## s-s-d for consistency or kill because it's cleaner? - ## s-s-d causes a 5 second delay here - #start-stop-daemon --stop --quiet --pidfile ${LIGHTTPD_PID} \ - # --signal SIGINT - kill -INT $(<${LIGHTTPD_PID}) - rm -f ${LIGHTTPD_PID} - start - fi -} diff --git a/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r2 b/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r2 deleted file mode 100644 index 606c283bf7e8..000000000000 --- a/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r2 +++ /dev/null @@ -1,68 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r2,v 1.1 2007/04/01 22:55:08 robbat2 Exp $ - -opts="reload graceful" - -depend() { - need net - use mysql logger spawn-fcgi ldap slapd - after famd - after sshd -} - -checkconfig() { - if [ ! -f "${LIGHTTPD_CONF}" ] ; then - ewarn "${LIGHTTPD_CONF} does not exist." - return 1 - fi - - /usr/sbin/lighttpd -t -f ${LIGHTTPD_CONF} >/dev/null -} - -start() { - checkconfig || return 1 - - ebegin "Starting lighttpd" - start-stop-daemon --start --quiet \ - --background --pidfile "${LIGHTTPD_PID}" \ - --exec /usr/sbin/lighttpd -- -f "${LIGHTTPD_CONF}" - eend $? -} - -stop() { - local rv=0 - ebegin "Stopping lighttpd" - start-stop-daemon --stop --quiet --pidfile "${LIGHTTPD_PID}" - eend $? -} - -reload() { - if ! service_started "${SVCNAME}" ; then - eerror "${SVCNAME} isn't running" - return 1 - fi - checkconfig || return 1 - - ebegin "Re-opening lighttpd log files" - start-stop-daemon --stop --oknodo --quiet --pidfile "${LIGHTTPD_PID}" \ - --signal HUP - eend $? -} - -graceful() { - if ! service_started "${SVCNAME}" ; then - eerror "${SVCNAME} isn't running" - return 1 - fi - checkconfig || return 1 - - ebegin "Gracefully stopping lighttpd" - start-stop-daemon --stop --oknodo --quiet --pidfile "${LIGHTTPD_PID}" \ - --signal INT - if eend $? ; then - rm -f "${LIGHTTPD_PID}" - start - fi -} |