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 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit