diff options
author | Daniel Campbell <zlg@gentoo.org> | 2017-01-30 05:09:43 -0800 |
---|---|---|
committer | Daniel Campbell <zlg@gentoo.org> | 2017-01-30 05:10:03 -0800 |
commit | c38a32ae672f32fc1e8d305d9f8204cc40be75a5 (patch) | |
tree | 29f704a936348df2f4bbbefbe43c82c16555b59c /www-servers/lighttpd/files | |
parent | app-admin/ansible: amd64 stable wrt bug #605342 (diff) | |
download | gentoo-c38a32ae672f32fc1e8d305d9f8204cc40be75a5.tar.gz gentoo-c38a32ae672f32fc1e8d305d9f8204cc40be75a5.tar.bz2 gentoo-c38a32ae672f32fc1e8d305d9f8204cc40be75a5.zip |
www-servers/lighttpd: Cleanup old <1.4.42
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'www-servers/lighttpd/files')
4 files changed, 0 insertions, 797 deletions
diff --git a/www-servers/lighttpd/files/conf/mod_fastcgi.conf-1.4.13-r2 b/www-servers/lighttpd/files/conf/mod_fastcgi.conf-1.4.13-r2 deleted file mode 100644 index fe1c84fece6b..000000000000 --- a/www-servers/lighttpd/files/conf/mod_fastcgi.conf-1.4.13-r2 +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################### -# mod_fastcgi.conf -# include'd by lighttpd.conf. -# $Id$ -############################################################################### - -server.modules += ("mod_fastcgi") -fastcgi.server = ( ".php" => - ( "localhost" => - ( - "socket" => "/var/run/lighttpd/lighttpd-fastcgi-php-" + PID + ".socket", - "bin-path" => "/usr/bin/php-cgi" - ) - ) - ) - -# vim: set ft=conf foldmethod=marker et : diff --git a/www-servers/lighttpd/files/lighttpd-1.4.29-mod_uploadprogress.patch b/www-servers/lighttpd/files/lighttpd-1.4.29-mod_uploadprogress.patch deleted file mode 100644 index c99886af1e7b..000000000000 --- a/www-servers/lighttpd/files/lighttpd-1.4.29-mod_uploadprogress.patch +++ /dev/null @@ -1,738 +0,0 @@ -diff -Nru lighttpd-1.4.22.orig/src/connections.c lighttpd-1.4.22/src/connections.c ---- lighttpd-1.4.22.orig/src/connections.c 2009-02-19 14:15:14.000000000 +0100 -+++ lighttpd-1.4.28/src/connections.c 2009-04-22 17:45:20.000000000 +0200 -@@ -1401,11 +1401,15 @@ - if (http_request_parse(srv, con)) { - /* we have to read some data from the POST request */ - -+ plugins_call_handle_request_end(srv, con); -+ - connection_set_state(srv, con, CON_STATE_READ_POST); - - break; - } - -+ plugins_call_handle_request_end(srv, con); -+ - connection_set_state(srv, con, CON_STATE_HANDLE_REQUEST); - - break; -diff -Nru lighttpd-1.4.22.orig/src/Makefile.am lighttpd-1.4.22/src/Makefile.am ---- lighttpd-1.4.22.orig/src/Makefile.am 2009-02-19 14:15:14.000000000 +0100 -+++ lighttpd-1.4.28/src/Makefile.am 2009-04-22 17:46:34.000000000 +0200 -@@ -246,6 +246,11 @@ - mod_accesslog_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined - mod_accesslog_la_LIBADD = $(common_libadd) - -+lib_LTLIBRARIES += mod_uploadprogress.la -+mod_uploadprogress_la_SOURCES = mod_uploadprogress.c -+mod_uploadprogress_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined -+mod_uploadprogress_la_LIBADD = $(common_libadd) -+ - - hdr = server.h buffer.h network.h log.h keyvalue.h \ - response.h request.h fastcgi.h chunk.h \ -diff -Nru lighttpd-1.4.22.orig/src/plugin.c lighttpd-1.4.22/src/plugin.c ---- lighttpd-1.4.22.orig/src/plugin.c 2009-02-19 14:15:14.000000000 +0100 -+++ lighttpd-1.4.28/src/plugin.c 2009-04-22 17:45:20.000000000 +0200 -@@ -34,6 +34,7 @@ - PLUGIN_FUNC_UNSET, - PLUGIN_FUNC_HANDLE_URI_CLEAN, - PLUGIN_FUNC_HANDLE_URI_RAW, -+ PLUGIN_FUNC_HANDLE_REQUEST_END, - PLUGIN_FUNC_HANDLE_REQUEST_DONE, - PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, - PLUGIN_FUNC_HANDLE_TRIGGER, -@@ -262,6 +263,7 @@ - - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_CLEAN, handle_uri_clean) - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_RAW, handle_uri_raw) -+PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_END, handle_request_end) - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_DONE, handle_request_done) - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, handle_connection_close) - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_SUBREQUEST, handle_subrequest) -@@ -389,6 +391,7 @@ - - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_CLEAN, handle_uri_clean); - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_RAW, handle_uri_raw); -+ PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_END, handle_request_end); - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_DONE, handle_request_done); - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, handle_connection_close); - PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_TRIGGER, handle_trigger); -diff -Nru lighttpd-1.4.22.orig/src/plugin.h lighttpd-1.4.22/src/plugin.h ---- lighttpd-1.4.22.orig/src/plugin.h 2009-02-19 14:15:14.000000000 +0100 -+++ lighttpd-1.4.28/src/plugin.h 2009-04-22 17:45:20.000000000 +0200 -@@ -42,12 +42,12 @@ - handler_t (* handle_uri_clean) (server *srv, connection *con, void *p_d); /* after uri is set */ - handler_t (* handle_docroot) (server *srv, connection *con, void *p_d); /* getting the document-root */ - handler_t (* handle_physical) (server *srv, connection *con, void *p_d); /* mapping url to physical path */ -+ handler_t (* handle_request_end) (server *srv, connection *con, void *p_d); /* a handler for the request content */ - handler_t (* handle_request_done) (server *srv, connection *con, void *p_d); /* at the end of a request */ - handler_t (* handle_connection_close)(server *srv, connection *con, void *p_d); /* at the end of a connection */ - handler_t (* handle_joblist) (server *srv, connection *con, void *p_d); /* after all events are handled */ - - -- - handler_t (* handle_subrequest_start)(server *srv, connection *con, void *p_d); - - /* when a handler for the request -@@ -68,6 +68,7 @@ - handler_t plugins_call_handle_uri_clean(server *srv, connection *con); - handler_t plugins_call_handle_subrequest_start(server *srv, connection *con); - handler_t plugins_call_handle_subrequest(server *srv, connection *con); -+handler_t plugins_call_handle_request_end(server *srv, connection *con); - handler_t plugins_call_handle_request_done(server *srv, connection *con); - handler_t plugins_call_handle_docroot(server *srv, connection *con); - handler_t plugins_call_handle_physical(server *srv, connection *con); -diff -Nru lighttpd-1.4.22.orig/src/mod_uploadprogress.c lighttpd-1.4.22/src/mod_uploadprogress.c ---- lighttpd-1.4.22.orig/src/mod_uploadprogress.c 1970-01-01 01:00:00.000000000 +0100 -+++ lighttpd-1.4.28/src/mod_uploadprogress.c 2009-04-22 17:32:38.000000000 +0200 -@@ -0,0 +1,648 @@ -+#include <ctype.h> -+#include <stdlib.h> -+#include <string.h> -+ -+#include "base.h" -+#include "log.h" -+#include "buffer.h" -+ -+#include "plugin.h" -+ -+#include "response.h" -+#include "stat_cache.h" -+ -+#define CONFIG_UPLOAD_PROGRESS_URL "upload-progress.progress-url" -+#define CONFIG_UPLOAD_PROGRESS_TIMEOUT "upload-progress.remove-timeout" -+#define CONFIG_UPLOAD_PROGRESS_DEBUG "upload-progress.debug" -+ -+#define SAFE_BUF_STR(x) x && x->ptr ? x->ptr : "(null)" -+ -+/** -+ * uploadprogress for lighttpd -+ * -+ * Initial: Jan Kneschke <jan@kneschke.de> -+ * Timeout+Status addon: Bjoern Kalkbrenner <terminar@cyberphoria.org> [20070112] -+ * -+ * Ported to Lighttpd 1.4.22 by Radek Senfeld <rush@logic.cz> -+ * -+ * Backport based on revision 2369 -+ * http://redmine.lighttpd.net/projects/lighttpd/repository/changes/trunk/src/mod_uploadprogress.c -+ * -+ * the timeout is used to keep in the status information intact even if the parent -+ * connection is gone already -+ * -+ */ -+ -+typedef struct { -+ buffer *tracking_id; -+ connection *con; -+ -+ time_t timeout; -+ int status; -+ off_t size; -+} connection_map_entry; -+ -+typedef struct { -+ connection_map_entry **ptr; -+ -+ size_t used; -+ size_t size; -+} connection_map; -+ -+/* plugin config for all request/connections */ -+ -+typedef struct { -+ buffer *progress_url; -+ unsigned short debug; -+ unsigned short remove_timeout; -+} plugin_config; -+ -+typedef struct { -+ PLUGIN_DATA; -+ -+ connection_map *con_map; -+ -+ buffer *tmp_buf; /** used as temporary buffer for extracting the tracking id */ -+ -+ plugin_config **config_storage; -+ -+ plugin_config conf; -+} plugin_data; -+ -+/** -+ * -+ * connection maps -+ * -+ */ -+ -+/* init the plugin data */ -+static connection_map *connection_map_init() { -+ connection_map *cm; -+ -+ cm = calloc(1, sizeof(*cm)); -+ -+ return cm; -+} -+ -+static void connection_map_free(connection_map *cm) { -+ size_t i; -+ for (i = 0; i < cm->size; i++) { -+ connection_map_entry *cme = cm->ptr[i]; -+ -+ if (!cme) break; -+ -+ if (cme->tracking_id) { -+ buffer_free(cme->tracking_id); -+ } -+ free(cme); -+ } -+ -+ free(cm); -+} -+ -+static connection_map_entry *connection_map_insert(connection_map *cm, buffer *tracking_id, connection *con) { -+ connection_map_entry *cme; -+ size_t i; -+ -+ if (cm->size == 0) { -+ cm->size = 16; -+ cm->ptr = malloc(cm->size * sizeof(*(cm->ptr))); -+ for (i = 0; i < cm->size; i++) { -+ cm->ptr[i] = NULL; -+ } -+ } else if (cm->used == cm->size) { -+ cm->size += 16; -+ cm->ptr = realloc(cm->ptr, cm->size * sizeof(*(cm->ptr))); -+ for (i = cm->used; i < cm->size; i++) { -+ cm->ptr[i] = NULL; -+ } -+ } -+ -+ if (cm->ptr[cm->used]) { -+ /* is already alloced, just reuse it */ -+ cme = cm->ptr[cm->used]; -+ } else { -+ cme = malloc(sizeof(*cme)); -+ cme->tracking_id = buffer_init(); -+ } -+ cme->timeout = 0; -+ cme->status = 0; -+ buffer_copy_string_buffer(cme->tracking_id, tracking_id); -+ cme->con = con; -+ -+ cm->ptr[cm->used++] = cme; -+ -+ return cme; -+} -+ -+static connection_map_entry *connection_map_get_connection_entry(connection_map *cm, buffer *tracking_id) { -+ size_t i; -+ -+ for (i = 0; i < cm->used; i++) { -+ connection_map_entry *cme = cm->ptr[i]; -+ -+ if (buffer_is_equal(cme->tracking_id, tracking_id)) { -+ /* found connection */ -+ return cme; -+ } -+ } -+ return NULL; -+} -+ -+static void connection_map_remove_connection(connection_map *cm, size_t i) { -+ connection_map_entry *cme = cm->ptr[i]; -+ -+ buffer_reset(cme->tracking_id); -+ cme->timeout=0; -+ cme->status=0; -+ -+ cm->used--; -+ -+ /* swap positions with the last entry */ -+ if (cm->used) { -+ cm->ptr[i] = cm->ptr[cm->used]; -+ cm->ptr[cm->used] = cme; -+ } -+} -+ -+/** -+ * remove dead tracking IDs -+ * -+ * uploadprogress.remove-timeout sets a grace-period in which the -+ * connection status is still known even of the connection is already -+ * being removed -+ * -+ */ -+static void connection_map_clear_timeout_connections(connection_map *cm) { -+ size_t i; -+ time_t now_t = time(NULL); -+ -+ for (i = 0; i < cm->used; i++) { -+ connection_map_entry *cme = cm->ptr[i]; -+ -+ if (cme->timeout != 0 && cme->timeout < now_t) { -+ /* found connection */ -+ connection_map_remove_connection(cm, i); -+ } -+ } -+} -+ -+/** -+ * extract the tracking-id from the parameters -+ * -+ * for POST requests it is part of the request headers -+ * for GET requests ... too -+ */ -+static buffer *get_tracking_id(plugin_data *p, server *srv, connection *con) { -+ data_string *ds; -+ buffer *b = NULL; -+ char *qstr=NULL; -+ size_t i; -+ -+ /* the request has to contain a 32byte ID */ -+ if (NULL == (ds = (data_string *)array_get_element(con->request.headers, "X-Progress-ID"))) { -+ char *amp = NULL; -+ -+ /* perhaps the POST request is using the querystring to pass the X-Progress-ID */ -+ if (buffer_is_empty(con->uri.query)) { -+ /* -+ * con->uri.query will not be parsed out if a 413 error happens -+ */ -+ if (NULL != (qstr = strchr(con->request.uri->ptr, '?'))) { -+ /** extract query string from request.uri */ -+ buffer_copy_string(con->uri.query, qstr + 1); -+ } else { -+ return NULL; -+ } -+ } -+ -+ /** split the query-string and extract the X-Progress-ID */ -+ do { -+ char *eq = NULL; -+ char *start = amp ? amp + 1 : con->uri.query->ptr; -+ -+ amp = strchr(start, '&'); -+ -+ /* check the string between start and amp for = */ -+ -+ if (amp) { -+ buffer_copy_string_len(p->tmp_buf, start, amp - start); -+ } else { -+ buffer_copy_string(p->tmp_buf, start); -+ } -+ -+ eq = strchr(p->tmp_buf->ptr, '='); -+ -+ if (eq) { -+ *eq = '\0'; -+ -+ if (0 == strcmp(p->tmp_buf->ptr, "X-Progress-ID")) { -+ size_t key_len = sizeof("X-Progress-ID") - 1; -+ size_t var_len = p->tmp_buf->used - 1; -+ /* found */ -+ -+ buffer_copy_string_len(p->tmp_buf, start + key_len + 1, var_len - key_len - 1); -+ -+ b = p->tmp_buf; -+ -+ break; -+ } -+ } -+ } while (amp); -+ -+ if (!b) return NULL; -+ } else { -+ /* request header was found, use it */ -+ b = ds->value; -+ } -+ -+ if (b->used != 32 + 1) { -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "sds", "the Progress-ID has to be 32 characters long, got", b->used - 1, "characters"); -+ return NULL; -+ } -+ -+ for (i = 0; i < b->used - 1; i++) { -+ char c = b->ptr[i]; -+ -+ if (!light_isxdigit(c)) { -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "sds", "only hex-digits are allowed (0-9 + a-f): (ascii:", c, ")"); -+ return NULL; -+ } -+ } -+ -+ return b; -+} -+ -+/* init the plugin data */ -+INIT_FUNC(mod_uploadprogress_init) { -+ plugin_data *p; -+ -+ p = calloc(1, sizeof(*p)); -+ -+ p->con_map = connection_map_init(); -+ p->tmp_buf = buffer_init(); -+ -+ return p; -+} -+ -+/* detroy the plugin data */ -+FREE_FUNC(mod_uploadprogress_free) { -+ plugin_data *p = p_d; -+ -+ UNUSED(srv); -+ -+ if (!p) return HANDLER_GO_ON; -+ -+ if (p->config_storage) { -+ size_t i; -+ for (i = 0; i < srv->config_context->used; i++) { -+ plugin_config *s = p->config_storage[i]; -+ -+ buffer_free(s->progress_url); -+ s->remove_timeout=0; -+ -+ free(s); -+ } -+ free(p->config_storage); -+ } -+ -+ connection_map_free(p->con_map); -+ buffer_free(p->tmp_buf); -+ -+ free(p); -+ -+ return HANDLER_GO_ON; -+} -+ -+/* handle plugin config and check values */ -+ -+SETDEFAULTS_FUNC(mod_uploadprogress_set_defaults) { -+ plugin_data *p = p_d; -+ size_t i = 0; -+ -+ config_values_t cv[] = { -+ { CONFIG_UPLOAD_PROGRESS_URL, NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ -+ { CONFIG_UPLOAD_PROGRESS_TIMEOUT, NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ -+ { CONFIG_UPLOAD_PROGRESS_DEBUG, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 2 */ -+ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } -+ }; -+ -+ if (!p) return HANDLER_ERROR; -+ -+ p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *)); -+ -+ for (i = 0; i < srv->config_context->used; i++) { -+ plugin_config *s; -+ -+ s = calloc(1, sizeof(plugin_config)); -+ s->progress_url = buffer_init(); -+ s->remove_timeout = 60; -+ s->debug = 0; -+ -+ cv[0].destination = s->progress_url; -+ cv[1].destination = &(s->remove_timeout); -+ cv[2].destination = &(s->debug); -+ -+ p->config_storage[i] = s; -+ -+ if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) { -+ return HANDLER_ERROR; -+ } -+ } -+ -+ return HANDLER_GO_ON; -+} -+ -+#define PATCH_OPTION(x) \ -+ p->conf.x = s->x; -+static int mod_uploadprogress_patch_connection(server *srv, connection *con, plugin_data *p) { -+ size_t i, j; -+ plugin_config *s = p->config_storage[0]; -+ -+ PATCH_OPTION(progress_url); -+ PATCH_OPTION(remove_timeout); -+ PATCH_OPTION(debug); -+ -+ /* skip the first, the global context */ -+ for (i = 1; i < srv->config_context->used; i++) { -+ data_config *dc = (data_config *)srv->config_context->data[i]; -+ s = p->config_storage[i]; -+ -+ /* condition didn't match */ -+ if (!config_check_cond(srv, con, dc)) continue; -+ -+ /* merge config */ -+ for (j = 0; j < dc->value->used; j++) { -+ data_unset *du = dc->value->data[j]; -+ -+ if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_URL))) { -+ PATCH_OPTION(progress_url); -+ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_TIMEOUT))) { -+ PATCH_OPTION(remove_timeout); -+ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_DEBUG))) { -+ PATCH_OPTION(debug); -+ } -+ } -+ } -+ -+ return 0; -+} -+ -+/** -+ * -+ * the idea: -+ * -+ * for the first request we check if it is a post-request -+ * -+ * if no, move out, don't care about them -+ * -+ * if yes, take the connection structure and register it locally -+ * in the progress-struct together with an session-id (md5 ... ) -+ * -+ * if the connections closes, cleanup the entry in the progress-struct -+ * -+ * a second request can now get the info about the size of the upload, -+ * the received bytes -+ * -+ */ -+ -+URIHANDLER_FUNC(mod_uploadprogress_uri_handler) { -+ plugin_data *p = p_d; -+ buffer *tracking_id; -+ buffer *b; -+ connection_map_entry *post_con_entry = NULL; -+ connection_map_entry *map_con_entry = NULL; -+ -+ if (buffer_is_empty(con->uri.path)) return HANDLER_GO_ON; -+ -+ /* no progress URL set, ignore request */ -+ if (buffer_is_empty(p->conf.progress_url)) return HANDLER_GO_ON; -+ -+ switch(con->request.http_method) { -+ case HTTP_METHOD_POST: -+ /** -+ * a POST request is the UPLOAD itself -+ * -+ * get the unique tracker id -+ */ -+ if (NULL == (tracking_id = get_tracking_id(p, srv, con))) { -+ return HANDLER_GO_ON; -+ } -+ -+ if (NULL == (map_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) { -+ connection_map_insert(p->con_map, tracking_id, con); -+ -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ss", "POST: connection is new, registered:", SAFE_BUF_STR(tracking_id)); -+ } else { -+ map_con_entry->timeout = 0; -+ map_con_entry->status = 0; -+ -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ss", "POST: connection is known, id:", SAFE_BUF_STR(tracking_id)); -+ } -+ -+ return HANDLER_GO_ON; -+ case HTTP_METHOD_GET: -+ /** -+ * the status request for the current connection -+ */ -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "(uploadprogress) urls", SAFE_BUF_STR(con->uri.path), "==", SAFE_BUF_STR(p->conf.progress_url)); -+ -+ if (!buffer_is_equal(con->uri.path, p->conf.progress_url)) { -+ return HANDLER_GO_ON; -+ } -+ -+ /* get the tracker id */ -+ if (NULL == (tracking_id = get_tracking_id(p, srv, con))) { -+ return HANDLER_GO_ON; -+ } -+ -+ buffer_reset(con->physical.path); -+ -+ con->file_started = 1; -+ con->http_status = 200; -+ con->file_finished = 1; -+ -+ /* send JSON content */ -+ -+ response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_STR_LEN("text/javascript")); -+ -+ /* just an attempt the force the IE/proxies to NOT cache the request */ -+ response_header_overwrite(srv, con, CONST_STR_LEN("Pragma"), CONST_STR_LEN("no-cache")); -+ response_header_overwrite(srv, con, CONST_STR_LEN("Expires"), CONST_STR_LEN("Thu, 19 Nov 1981 08:52:00 GMT")); -+ response_header_overwrite(srv, con, CONST_STR_LEN("Cache-Control"), -+ CONST_STR_LEN("no-store, no-cache, must-revalidate, post-check=0, pre-check=0")); -+ -+ b = chunkqueue_get_append_buffer(con->write_queue); -+ -+ /* get the connection */ -+ if (NULL == (post_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) { -+ /** -+ * looks like we don't know the tracking id yet, GET and POST out of sync ? */ -+ buffer_append_string_len(b, CONST_STR_LEN("{ \"state\" : \"unknown\" }\r\n")); -+ con->response.content_length += b->used - 1; -+ -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "connection unknown:", SAFE_BUF_STR(tracking_id), ", sending:", SAFE_BUF_STR(b)); -+ -+ return HANDLER_FINISHED; -+ } -+ -+ buffer_copy_string_len(b, CONST_STR_LEN("{ \"state\" : ")); -+ -+ if (post_con_entry->status == 413) { -+ /* the upload was too large */ -+ buffer_append_string_len(b, CONST_STR_LEN("\"error\", \"status\" : 413")); -+ } else if (post_con_entry->con == NULL) { -+ /* the connection is already gone */ -+ buffer_append_string_len(b, CONST_STR_LEN("\"done\", \"size\" : ")); -+ buffer_append_off_t(b, post_con_entry->size); -+ } else { -+ /* the upload is already done, but the connection might be still open */ -+ buffer_append_string(b, post_con_entry->con->state == CON_STATE_READ_POST ? "\"uploading\"" : "\"done\""); -+ buffer_append_string_len(b, CONST_STR_LEN(", \"received\" : ")); -+ buffer_append_off_t(b, post_con_entry->con->bytes_read); -+ buffer_append_string_len(b, CONST_STR_LEN(", \"size\" : ")); -+ buffer_append_off_t(b, post_con_entry->con->request.content_length); -+ } -+ buffer_append_string_len(b, CONST_STR_LEN("}\r\n")); -+ con->response.content_length += b->used - 1; -+ -+ if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "connection is known:", SAFE_BUF_STR(tracking_id), ", sending:", SAFE_BUF_STR(b)); -+ -+ return HANDLER_FINISHED; -+ default: -+ break; -+ } -+ -+ return HANDLER_GO_ON; -+} -+ -+/** -+ * check for POST request -+ */ -+CONNECTION_FUNC(mod_uploadprogress_request_end) { -+ plugin_data *p = p_d; -+ -+ buffer *tracking_id; -+ connection_map_entry *map_con_entry = NULL; -+ -+ UNUSED(srv); -+ -+ /* no request URL, ignore request */ -+ if (buffer_is_empty(con->request.uri)) return HANDLER_GO_ON; -+ -+ mod_uploadprogress_patch_connection(srv, con, p); -+ -+ /* -+ * we only want to process the upload (POST request) -+ */ -+ if (con->request.http_method != HTTP_METHOD_POST) { -+ return HANDLER_GO_ON; -+ } -+ -+ if (p->conf.debug) { -+ log_error_write(srv, __FILE__, __LINE__, "sxsdsd", "request_end: con=", (void *) con, ", http_method=", con->request.http_method, ", http_status=", con->http_status); -+ } -+ -+ /* get the tracker id */ -+ if (NULL == (tracking_id = get_tracking_id(p, srv, con))) { -+ return HANDLER_GO_ON; -+ } -+ -+ if (NULL == (map_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) { -+ /** -+ * in case the request parser meant the request was too large the URI handler won't -+ * get called. Insert the connection mapping here -+ */ -+ if (NULL == (map_con_entry = connection_map_insert(p->con_map, tracking_id, con))) { -+ return HANDLER_GO_ON; -+ } -+ } -+ -+ /* ok, found our entries, setting status */ -+ map_con_entry->status = con->http_status; -+ -+ return HANDLER_GO_ON; -+} -+ -+/** -+ * remove the parent connection from the connection mapping -+ * when it got closed -+ * -+ * keep the mapping active for a while to send a valid final status -+ */ -+CONNECTION_FUNC(mod_uploadprogress_request_done) { -+ plugin_data *p = p_d; -+ buffer *tracking_id; -+ connection_map_entry *cm = NULL; -+ -+ UNUSED(srv); -+ -+ if (buffer_is_empty(con->request.uri)) return HANDLER_GO_ON; -+ -+ /* -+ * only need to handle the upload request. -+ */ -+ if (con->request.http_method != HTTP_METHOD_POST) { -+ return HANDLER_GO_ON; -+ } -+ -+ if (NULL == (tracking_id = get_tracking_id(p, srv, con))) { -+ return HANDLER_GO_ON; -+ } -+ -+ if (p->conf.debug) { -+ log_error_write(srv, __FILE__, __LINE__, "sssd", "upload is done, moving tracking-id to backlog: tracking-id=", SAFE_BUF_STR(tracking_id), ", http_status=", con->http_status); -+ } -+ -+ /* -+ * set timeout on the upload's connection_map_entry. -+ */ -+ if (NULL == (cm = connection_map_get_connection_entry(p->con_map, tracking_id))) { -+ if (p->conf.debug) { -+ log_error_write(srv, __FILE__, __LINE__, "sss", "tracking ID", SAFE_BUF_STR(tracking_id), "not found, can't set timeout"); -+ } -+ return HANDLER_GO_ON; -+ } -+ -+ /* save request size to be able to report it even when cm->con == NULL */ -+ cm->size = con->request.content_length; -+ -+ cm->timeout = time(NULL) + p->conf.remove_timeout; -+ cm->con = NULL; /* con becomes invalid very soon */ -+ -+ return HANDLER_GO_ON; -+} -+ -+/** -+ * remove dead connections once in while -+ */ -+TRIGGER_FUNC(mod_uploadprogress_trigger) { -+ plugin_data *p = p_d; -+ -+ if ((srv->cur_ts % 10) != 0) return HANDLER_GO_ON; -+ -+ connection_map_clear_timeout_connections(p->con_map); -+ -+ return HANDLER_GO_ON; -+} -+ -+ -+/* this function is called at dlopen() time and inits the callbacks */ -+ -+int mod_uploadprogress_plugin_init(plugin *p) { -+ p->version = LIGHTTPD_VERSION_ID; -+ p->name = buffer_init_string("uploadprogress"); -+ -+ p->init = mod_uploadprogress_init; -+ p->handle_uri_clean = mod_uploadprogress_uri_handler; -+ p->handle_request_end = mod_uploadprogress_request_end; -+ p->handle_request_done = mod_uploadprogress_request_done; -+// p->connection_reset = mod_uploadprogress_request_done; -+ p->set_defaults = mod_uploadprogress_set_defaults; -+ p->cleanup = mod_uploadprogress_free; -+ p->handle_trigger = mod_uploadprogress_trigger; -+ -+ p->data = NULL; -+ -+ return 0; -+} diff --git a/www-servers/lighttpd/files/lighttpd-1.4.31-automake-1.12.patch b/www-servers/lighttpd/files/lighttpd-1.4.31-automake-1.12.patch deleted file mode 100644 index eb3119fa01f7..000000000000 --- a/www-servers/lighttpd/files/lighttpd-1.4.31-automake-1.12.patch +++ /dev/null @@ -1,21 +0,0 @@ -http://bugs.gentoo.org/420599 - ---- configure.ac -+++ configure.ac -@@ -14,6 +14,8 @@ - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES]) - - dnl Checks for programs. -+m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) -+ - AC_PROG_CC - AM_PROG_CC_C_O - AC_PROG_LD -@@ -39,7 +41,6 @@ - AC_EXEEXT - - dnl more automake stuff --AM_C_PROTOTYPES - - dnl libtool - AC_DISABLE_STATIC diff --git a/www-servers/lighttpd/files/lighttpd-1.4.33-fix-ipv6-build.patch b/www-servers/lighttpd/files/lighttpd-1.4.33-fix-ipv6-build.patch deleted file mode 100644 index 24acc81e8099..000000000000 --- a/www-servers/lighttpd/files/lighttpd-1.4.33-fix-ipv6-build.patch +++ /dev/null @@ -1,21 +0,0 @@ -Gentoo bug: -https://bugs.gentoo.org/show_bug.cgi?id=486426 - -Upstream bug: -http://redmine.lighttpd.net/issues/2515 - -Upstream Commit: -http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/2911 - -Index: src/mod_extforward.c -=================================================================== ---- src/mod_extforward.c (revision 2909) -+++ src/mod_extforward.c (working copy) -@@ -439,7 +439,6 @@ - #ifdef HAVE_IPV6 - ipstr_to_sockaddr(srv, real_remote_addr, &sock); - #else -- UNUSED(addrs_left); - sock.ipv4.sin_addr.s_addr = inet_addr(real_remote_addr); - sock.plain.sa_family = (sock.ipv4.sin_addr.s_addr == 0xFFFFFFFF) ? AF_UNSPEC : AF_INET; - #endif |