packages: lighttpd/lighttpd-branch.diff - up to 2613: * Add T_CONFIG_INT...
glen
glen at pld-linux.org
Mon Aug 17 13:45:12 CEST 2009
Author: glen Date: Mon Aug 17 11:45:11 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- up to 2613:
* Add T_CONFIG_INT for bigger integers from the config (needed for #1966)
* Use unsigned int (and T_CONFIG_INT) for max_request_size
* Use unsigned int for secdownload.timeout (fixes #1966)
* Keep url/host values from connection to display information while keep-alive in mod_status (fixes #1202)
* Add server.breakagelog, a "special" stderr (fixes #1863)
* Fix config evaluation for debug.log-timeouts option (#1529)
* Add "cgi.execute-x-only" to mod_cgi, requires +x for cgi scripts (fixes #2013)
* Fix FD_SETSIZE comparision warnings
* Add "lua-5.1" to searched pkg-config names for lua
* Fix unused function webdav_lockdiscovery in mod_webdav
* cmake: Fix crypt lib check
* cmake: Add -export-dynamic to link flags, fixes build on FreeBSD
* Set FD_CLOEXEC for bound sockets before pipe-logger forks (fixes #2026)
* Reset ignored signals to SIG_DFL before exec() in fastcgi/scgi (fixes #2029)
* Show "no uri specified -> 400" error only when "debug.log-request-header-on-error" is enabled (fixes #2030)
* Fix hanging connection in mod_scgi (fixes #2024)
* Allow digits in hostnames in more places (fixes #1148)
* Use connection_reset instead of handle_request_done for cleanup callbacks
* Change mod_expire to append Cache-Control instead of overwriting it (fixes #1997)
* Allow all comparisons for $SERVER["socket"] - only bind for "=="
* Remove strptime failed message (fixes #2031)
* Fix issues found with clang analyzer
* Try to fix server.tag issue with localized svnversion
* Fix handling network-write return values (#2024)
* Use disable-time in fastcgi for all disables after errors, default is 1sec (fixes #2040)
* Remove adaptive spawning code from fastcgi (was disabled for a long time)
* Allow mod_mysql_vhost to use stored procedures (fixes #2011, thx Ben Brown)
* Fix ipv6 in mod_proxy (fixes #2043)
* Print errors from include_shell to stderr
* Set tm.tm_isdst = 0 before mktime() (fixes #2047)
* Use linux-epoll by default if available (fixes #2021, thx Olaf van der Spek)
---- Files affected:
packages/lighttpd:
lighttpd-branch.diff (1.53 -> 1.54)
---- Diffs:
================================================================
Index: packages/lighttpd/lighttpd-branch.diff
diff -u /dev/null packages/lighttpd/lighttpd-branch.diff:1.54
--- /dev/null Mon Aug 17 13:45:12 2009
+++ packages/lighttpd/lighttpd-branch.diff Mon Aug 17 13:45:06 2009
@@ -0,0 +1,2633 @@
+Index: ChangeLog
+===================================================================
+Index: .cvsignore
+===================================================================
+Index: src/.cvsignore
+===================================================================
+Index: src/configfile-glue.c
+===================================================================
+--- src/configfile-glue.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/configfile-glue.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -103,7 +103,6 @@
+ if (e != ds->value->ptr && !*e && l >=0 && l <= 65535) {
+ *((unsigned short *)(cv[i].destination)) = l;
+ break;
+-
+ }
+ }
+
+@@ -112,10 +111,40 @@
+ return -1;
+ }
+ default:
+- log_error_write(srv, __FILE__, __LINE__, "ssds", "unexpected type for key:", cv[i].key, du->type, "expected a integer, range 0 ... 65535");
++ log_error_write(srv, __FILE__, __LINE__, "ssds", "unexpected type for key:", cv[i].key, du->type, "expected a short integer, range 0 ... 65535");
+ return -1;
+ }
+ break;
++ case T_CONFIG_INT:
++ switch(du->type) {
++ case TYPE_INTEGER: {
++ data_integer *di = (data_integer *)du;
++
++ *((unsigned int *)(cv[i].destination)) = di->value;
++ break;
++ }
++ case TYPE_STRING: {
++ data_string *ds = (data_string *)du;
++
++ if (ds->value->ptr && *ds->value->ptr) {
++ char *e;
++ long l = strtol(ds->value->ptr, &e, 10);
++ if (e != ds->value->ptr && !*e && l >= 0) {
++ *((unsigned int *)(cv[i].destination)) = l;
++ break;
++ }
++ }
++
++
++ log_error_write(srv, __FILE__, __LINE__, "ssb", "got a string but expected an integer:", cv[i].key, ds->value);
++
++ return -1;
++ }
++ default:
++ log_error_write(srv, __FILE__, __LINE__, "ssds", "unexpected type for key:", cv[i].key, du->type, "expected an integer, range 0 ... 4294967295");
++ return -1;
++ }
++ break;
+ case T_CONFIG_BOOLEAN:
+ if (du->type == TYPE_STRING) {
+ data_string *ds = (data_string *)du;
+Index: src/mod_cgi.c
+===================================================================
+--- src/mod_cgi.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/mod_cgi.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -56,6 +56,7 @@
+
+ typedef struct {
+ array *cgi;
++ unsigned short execute_x_only;
+ } plugin_config;
+
+ typedef struct {
+@@ -151,6 +152,7 @@
+
+ config_values_t cv[] = {
+ { "cgi.assign", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
++ { "cgi.execute-x-only", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */
+ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET}
+ };
+
+@@ -165,8 +167,10 @@
+ assert(s);
+
+ s->cgi = array_init();
++ s->execute_x_only = 0;
+
+ cv[0].destination = s->cgi;
++ cv[1].destination = &(s->execute_x_only);
+
+ p->config_storage[i] = s;
+
+@@ -580,12 +584,9 @@
+ #if 0
+ log_error_write(srv, __FILE__, __LINE__, "sd", "(debug) cgi exited fine, pid:", pid);
+ #endif
+- pid = 0;
+-
+ return HANDLER_GO_ON;
+ } else {
+ log_error_write(srv, __FILE__, __LINE__, "sd", "cgi died, pid:", pid);
+- pid = 0;
+ return HANDLER_GO_ON;
+ }
+ }
+@@ -1005,7 +1006,7 @@
+ args[i++] = cgi_handler->ptr;
+ }
+ args[i++] = con->physical.path->ptr;
+- args[i++] = NULL;
++ args[i ] = NULL;
+
+ /* search for the last / */
+ if (NULL != (c = strrchr(con->physical.path->ptr, '/'))) {
+@@ -1018,8 +1019,6 @@
+ *c = '/';
+ }
+
+- openDevNull(STDERR_FILENO);
+-
+ /* we don't need the client socket */
+ for (i = 3; i < 256; i++) {
+ if (i != srv->errorlog_fd) close(i);
+@@ -1198,6 +1197,8 @@
+
+ if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.assign"))) {
+ PATCH(cgi);
++ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.execute-x-only"))) {
++ PATCH(execute_x_only);
+ }
+ }
+ }
+@@ -1220,6 +1221,7 @@
+
+ if (HANDLER_ERROR == stat_cache_get_entry(srv, con, con->physical.path, &sce)) return HANDLER_GO_ON;
+ if (!S_ISREG(sce->st.st_mode)) return HANDLER_GO_ON;
++ if (p->conf.execute_x_only == 1 && (sce->st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) == 0) return HANDLER_GO_ON;
+
+ s_len = fn->used - 1;
+
+Index: src/network_write.c
+===================================================================
+--- src/network_write.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/network_write.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -46,15 +46,27 @@
+ toSend = c->mem->used - 1 - c->offset;
+ #ifdef __WIN32
+ if ((r = send(fd, offset, toSend, 0)) < 0) {
+- log_error_write(srv, __FILE__, __LINE__, "ssd", "write failed: ", strerror(errno), fd);
++ /* no error handling for windows... */
++ log_error_write(srv, __FILE__, __LINE__, "ssd", "send failed: ", strerror(errno), fd);
+
+ return -1;
+ }
+ #else
+ if ((r = write(fd, offset, toSend)) < 0) {
+- log_error_write(srv, __FILE__, __LINE__, "ssd", "write failed: ", strerror(errno), fd);
++ switch (errno) {
++ case EAGAIN:
++ case EINTR:
++ r = 0;
++ break;
++ case EPIPE:
++ case ECONNRESET:
++ return -2;
++ default:
++ log_error_write(srv, __FILE__, __LINE__, "ssd",
++ "write failed:", strerror(errno), fd);
+
+- return -1;
++ return -1;
++ }
+ }
+ #endif
+
+@@ -98,7 +110,7 @@
+ return -1;
+ }
+
+-#if defined USE_MMAP
++#ifdef USE_MMAP
+ if (MAP_FAILED == (p = mmap(0, sce->st.st_size, PROT_READ, MAP_SHARED, ifd, 0))) {
+ log_error_write(srv, __FILE__, __LINE__, "ss", "mmap failed: ", strerror(errno));
+
+@@ -109,13 +121,26 @@
+ close(ifd);
+
+ if ((r = write(fd, p + offset, toSend)) <= 0) {
+- log_error_write(srv, __FILE__, __LINE__, "ss", "write failed: ", strerror(errno));
+- munmap(p, sce->st.st_size);
+- return -1;
++ switch (errno) {
++ case EAGAIN:
++ case EINTR:
++ r = 0;
++ break;
++ case EPIPE:
++ case ECONNRESET:
++ munmap(p, sce->st.st_size);
++ return -2;
++ default:
++ log_error_write(srv, __FILE__, __LINE__, "ssd",
++ "write failed:", strerror(errno), fd);
++ munmap(p, sce->st.st_size);
++
++ return -1;
++ }
+ }
+
+ munmap(p, sce->st.st_size);
+-#else
++#else /* USE_MMAP */
+ buffer_prepare_copy(srv->tmp_buf, toSend);
+
+ lseek(ifd, offset, SEEK_SET);
+@@ -127,12 +152,33 @@
+ }
+ close(ifd);
+
+- if (-1 == (r = send(fd, srv->tmp_buf->ptr, toSend, 0))) {
+- log_error_write(srv, __FILE__, __LINE__, "ss", "write: ", strerror(errno));
++#ifdef __WIN32
++ if ((r = send(fd, srv->tmp_buf->ptr, toSend, 0)) < 0) {
++ /* no error handling for windows... */
++ log_error_write(srv, __FILE__, __LINE__, "ssd", "send failed: ", strerror(errno), fd);
+
+ return -1;
+ }
+-#endif
++#else /* __WIN32 */
++ if ((r = write(fd, srv->tmp_buf->ptr, toSend)) < 0) {
++ switch (errno) {
++ case EAGAIN:
++ case EINTR:
++ r = 0;
++ break;
++ case EPIPE:
++ case ECONNRESET:
++ return -2;
++ default:
++ log_error_write(srv, __FILE__, __LINE__, "ssd",
++ "write failed:", strerror(errno), fd);
++
++ return -1;
++ }
++ }
++#endif /* __WIN32 */
++#endif /* USE_MMAP */
++
+ c->offset += r;
+ cq->bytes_out += r;
+
+Index: src/mod_secure_download.c
+===================================================================
+--- src/mod_secure_download.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/mod_secure_download.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -37,7 +37,7 @@
+ buffer *secret;
+ buffer *uri_prefix;
+
+- unsigned short timeout;
++ unsigned int timeout;
+ } plugin_config;
+
+ typedef struct {
+@@ -99,7 +99,7 @@
+ { "secdownload.secret", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
+ { "secdownload.document-root", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 1 */
+ { "secdownload.uri-prefix", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 2 */
+- { "secdownload.timeout", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 3 */
++ { "secdownload.timeout", NULL, T_CONFIG_INT, T_CONFIG_SCOPE_CONNECTION }, /* 3 */
+ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
+ };
+
+@@ -245,8 +245,8 @@
+ }
+
+ /* timed-out */
+- if ( (srv->cur_ts > ts && srv->cur_ts - ts > p->conf.timeout) ||
+- (srv->cur_ts < ts && ts - srv->cur_ts > p->conf.timeout) ) {
++ if ( (srv->cur_ts > ts && (unsigned int) (srv->cur_ts - ts) > p->conf.timeout) ||
++ (srv->cur_ts < ts && (unsigned int) (ts - srv->cur_ts) > p->conf.timeout) ) {
+ /* "Gone" as the url will never be valid again instead of "408 - Timeout" where the request may be repeated */
+ con->http_status = 410;
+
+Index: src/base.h
+===================================================================
+--- src/base.h (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/base.h (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -84,6 +84,7 @@
+ typedef enum { T_CONFIG_UNSET,
+ T_CONFIG_STRING,
+ T_CONFIG_SHORT,
++ T_CONFIG_INT,
+ T_CONFIG_BOOLEAN,
+ T_CONFIG_ARRAY,
+ T_CONFIG_LOCAL,
+@@ -281,7 +282,7 @@
+ unsigned short etag_use_mtime;
+ unsigned short etag_use_size;
+ unsigned short force_lowercase_filenames; /* if the FS is case-insensitive, force all files to lower-case */
+- unsigned short max_request_size;
++ unsigned int max_request_size;
+
+ unsigned short kbytes_per_second; /* connection kb/s limit */
+
+@@ -472,6 +473,7 @@
+
+ buffer *errorlog_file;
+ unsigned short errorlog_use_syslog;
++ buffer *breakagelog_file;
+
+ unsigned short dont_daemonize;
+ buffer *changeroot;
+@@ -490,7 +492,7 @@
+ unsigned short max_worker;
+ unsigned short max_fds;
+ unsigned short max_conns;
+- unsigned short max_request_size;
++ unsigned int max_request_size;
+
+ unsigned short log_request_header_on_error;
+ unsigned short log_state_handling;
+@@ -538,7 +540,7 @@
+
+ /* the errorlog */
+ int errorlog_fd;
+- enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG, ERRORLOG_PIPE } errorlog_mode;
++ enum { ERRORLOG_FILE, ERRORLOG_FD, ERRORLOG_SYSLOG, ERRORLOG_PIPE } errorlog_mode;
+ buffer *errorlog_buf;
+
+ fdevents *ev, *ev_ins;
+Index: src/mod_rewrite.c
+===================================================================
+--- src/mod_rewrite.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/mod_rewrite.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -176,7 +176,7 @@
+ data_unset *du;
+
+ if (NULL != (du = array_get_element(ca, option))) {
+- data_array *da = (data_array *)du;
++ data_array *da;
+ size_t j;
+
+ if (du->type != TYPE_ARRAY) {
+@@ -373,7 +373,7 @@
+ }
+ } else {
+ const char **list;
+- size_t start, end;
++ size_t start;
+ size_t k;
+
+ /* it matched */
+@@ -383,17 +383,15 @@
+
+ buffer_reset(con->request.uri);
+
+- start = 0; end = pattern_len;
++ start = 0;
+ for (k = 0; k < pattern_len; k++) {
+ if (pattern[k] == '$' || pattern[k] == '%') {
+ /* got one */
+
+ size_t num = pattern[k + 1] - '0';
+
+- end = k;
++ buffer_append_string_len(con->request.uri, pattern + start, k - start);
+
+- buffer_append_string_len(con->request.uri, pattern + start, end - start);
+-
+ if (!isdigit((unsigned char)pattern[k + 1])) {
+ /* enable escape: "%%" => "%", "%a" => "%a", "$$" => "$" */
+ buffer_append_string_len(con->request.uri, pattern+k, pattern[k] == pattern[k+1] ? 1 : 2);
+Index: src/connections.c
+===================================================================
+--- src/connections.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/connections.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -782,13 +782,13 @@
+ CLEAN(request.pathinfo);
+ CLEAN(request.request);
+
+- CLEAN(request.orig_uri);
++ /* CLEAN(request.orig_uri); */
+
+ CLEAN(uri.scheme);
+- CLEAN(uri.authority);
+- CLEAN(uri.path);
++ /* CLEAN(uri.authority); */
++ /* CLEAN(uri.path); */
+ CLEAN(uri.path_raw);
+- CLEAN(uri.query);
++ /* CLEAN(uri.query); */
+
+ CLEAN(physical.doc_root);
+ CLEAN(physical.path);
+@@ -1401,6 +1401,11 @@
+ "state for fd", con->fd, connection_get_state(con->state));
+ }
+
++ buffer_reset(con->uri.authority);
++ buffer_reset(con->uri.path);
++ buffer_reset(con->uri.query);
++ buffer_reset(con->request.orig_uri);
++
+ if (http_request_parse(srv, con)) {
+ /* we have to read some data from the POST request */
+
+@@ -1725,7 +1730,7 @@
+ case HANDLER_FINISHED:
+ break;
+ default:
+- log_error_write(srv, __FILE__, __LINE__, "");
++ log_error_write(srv, __FILE__, __LINE__, "sd", "unhandling return value", r);
+ break;
+ }
+ break;
+Index: src/network.c
+===================================================================
+--- src/network.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/network.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -167,6 +167,11 @@
+ }
+ }
+
++#ifdef FD_CLOEXEC
++ /* set FD_CLOEXEC now, fdevent_fcntl_set is called later; needed for pipe-logger forks */
++ fcntl(srv_socket->fd, F_SETFD, FD_CLOEXEC);
++#endif
++
+ /* */
+ srv->cur_fds = srv_socket->fd;
+
+@@ -280,8 +285,6 @@
+
+ break;
+ default:
+- addr_len = 0;
+-
+ return -1;
+ }
+
+@@ -567,12 +570,8 @@
+ /* not our stage */
+ if (COMP_SERVER_SOCKET != dc->comp) continue;
+
+- if (dc->cond != CONFIG_COND_EQ) {
+- log_error_write(srv, __FILE__, __LINE__, "s", "only == is allowed for $SERVER[\"socket\"].");
++ if (dc->cond != CONFIG_COND_EQ) continue;
+
+- return -1;
+- }
+-
+ /* check if we already know this socket,
+ * if yes, don't init it */
+ for (j = 0; j < srv->srv_sockets.used; j++) {
+Index: src/configfile.c
+===================================================================
+--- src/configfile.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/configfile.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -42,12 +42,12 @@
+
+ { "server.event-handler", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 10 */
+ { "server.pid-file", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 11 */
+- { "server.max-request-size", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 12 */
++ { "server.max-request-size", NULL, T_CONFIG_INT, T_CONFIG_SCOPE_CONNECTION }, /* 12 */
+ { "server.max-worker", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_SERVER }, /* 13 */
+ { "server.document-root", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 14 */
+- { "server.force-lowercase-filenames", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 15 */
++ { "server.force-lowercase-filenames", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },/* 15 */
+ { "debug.log-condition-handling", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 16 */
+- { "server.max-keep-alive-requests", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 17 */
++ { "server.max-keep-alive-requests", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },/* 17 */
+ { "server.name", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 18 */
+ { "server.max-keep-alive-idle", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 19 */
+
+@@ -91,12 +91,13 @@
+ { "server.core-files", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 46 */
+ { "ssl.cipher-list", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 47 */
+ { "ssl.use-sslv2", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 48 */
+- { "etag.use-inode", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 49 */
+- { "etag.use-mtime", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 50 */
+- { "etag.use-size", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 51 */
++ { "etag.use-inode", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 49 */
++ { "etag.use-mtime", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 50 */
++ { "etag.use-size", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 51 */
+ { "server.reject-expect-100-with-417", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 52 */
+ { "debug.log-timeouts", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 53 */
+- { "server.defer-accept", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 54 */
++ { "server.defer-accept", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 54 */
++ { "server.breakagelog", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 55 */
+ { "server.host", "use server.bind instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET },
+ { "server.docroot", "use server.document-root instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET },
+ { "server.virtual-root", "load mod_simple_vhost and use simple-vhost.server-root instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET },
+@@ -139,6 +140,8 @@
+ cv[43].destination = &(srv->srvconf.max_conns);
+ cv[12].destination = &(srv->srvconf.max_request_size);
+ cv[52].destination = &(srv->srvconf.reject_expect_100_with_417);
++ cv[55].destination = srv->srvconf.breakagelog_file;
++
+ srv->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
+
+ assert(srv->config_storage);
+@@ -290,6 +293,7 @@
+ PATCH(log_condition_handling);
+ PATCH(log_file_not_found);
+ PATCH(log_ssl_noise);
++ PATCH(log_timeouts);
+
+ PATCH(range_requests);
+ PATCH(force_lowercase_filenames);
+@@ -1135,15 +1139,15 @@
+ * - select works everywhere
+ * - linux-* are experimental
+ */
++#ifdef USE_LINUX_EPOLL
++ { FDEVENT_HANDLER_LINUX_SYSEPOLL, "linux-sysepoll" },
++#endif
+ #ifdef USE_POLL
+ { FDEVENT_HANDLER_POLL, "poll" },
+ #endif
+ #ifdef USE_SELECT
+ { FDEVENT_HANDLER_SELECT, "select" },
+ #endif
+-#ifdef USE_LINUX_EPOLL
+- { FDEVENT_HANDLER_LINUX_SYSEPOLL, "linux-sysepoll" },
+-#endif
+ #ifdef USE_LINUX_SIGIO
+ { FDEVENT_HANDLER_LINUX_RTSIG, "linux-rtsig" },
+ #endif
+Index: src/mod_evhost.c
+===================================================================
+--- src/mod_evhost.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/mod_evhost.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -213,7 +213,7 @@
+ if (colon != ptr) {
+ ds = data_string_init();
+ buffer_copy_string_len(ds->key,CONST_STR_LEN("%"));
+- buffer_append_long(ds->key, i++);
++ buffer_append_long(ds->key, i /* ++ */);
+ buffer_copy_string_len(ds->value,ptr,colon-ptr);
+
+ array_insert_unique(host,(data_unset *)ds);
+@@ -294,10 +294,10 @@
+ char *colon = strchr(con->uri.authority->ptr, ':');
+
+ if(colon == NULL) {
+- buffer_append_string_buffer(p->tmp_buf, con->uri.authority); // adds fqdn
++ buffer_append_string_buffer(p->tmp_buf, con->uri.authority); /* adds fqdn */
+ } else {
+ /* strip the port out of the authority-part of the URI scheme */
+- buffer_append_string_len(p->tmp_buf, con->uri.authority->ptr, colon - con->uri.authority->ptr); // adds fqdn
++ buffer_append_string_len(p->tmp_buf, con->uri.authority->ptr, colon - con->uri.authority->ptr); /* adds fqdn */
+ }
+ } else if (NULL != (ds = (data_string *)array_get_element(parsed_host,p->conf.path_pieces[i]->ptr))) {
+ if (ds->value->used) {
+Index: src/splaytree.c
+===================================================================
+--- src/splaytree.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/splaytree.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -61,12 +61,11 @@
+ * size fields are maintained */
+ splay_tree * splaytree_splay (splay_tree *t, int i) {
+ splay_tree N, *l, *r, *y;
+- int comp, root_size, l_size, r_size;
++ int comp, l_size, r_size;
+
+ if (t == NULL) return t;
+ N.left = N.right = NULL;
+ l = r = &N;
+- root_size = node_size(t);
+ l_size = r_size = 0;
+
+ for (;;) {
+Index: src/lemon.c
+===================================================================
+--- src/lemon.c (.../tags/lighttpd-1.4.23) (revision 2613)
++++ src/lemon.c (.../branches/lighttpd-1.4.x) (revision 2613)
+@@ -39,6 +39,12 @@
+ # endif
+ #endif
+
++#if __GNUC__ > 2
++#define NORETURN __attribute__ ((__noreturn__))
++#else
++#define NORETURN
++#endif
++
+ /* #define PRIVATE static */
+ #define PRIVATE static
+
+@@ -51,7 +57,7 @@
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/lighttpd/lighttpd-branch.diff?r1=1.53&r2=1.54&f=u
More information about the pld-cvs-commit
mailing list