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

Reply via email to