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