Revision bump; more upstream fixes.
authorAaron Walker <ka0ttic@gentoo.org>
Thu, 29 Sep 2005 17:29:28 +0000 (17:29 +0000)
committerAaron Walker <ka0ttic@gentoo.org>
Thu, 29 Sep 2005 17:29:28 +0000 (17:29 +0000)
Package-Manager: portage-2.0.52-r1

www-servers/lighttpd/ChangeLog
www-servers/lighttpd/Manifest
www-servers/lighttpd/files/1.4.4/07_all_r726-sce-set-if-HANDLER_GO_ON.diff [new file with mode: 0644]
www-servers/lighttpd/files/1.4.4/08_all_r727-fix-another-error-msg-segv.diff [new file with mode: 0644]
www-servers/lighttpd/files/1.4.4/09_all_r728-handle-written-correctly.diff [new file with mode: 0644]
www-servers/lighttpd/files/1.4.4/10_all_r729-display-content_ndx.diff [new file with mode: 0644]
www-servers/lighttpd/files/1.4.4/11_all_r732-dont-starve-waiting-conns.diff [new file with mode: 0644]
www-servers/lighttpd/files/1.4.4/12_all_r736-fix-max-request-size.diff [new file with mode: 0644]
www-servers/lighttpd/files/1.4.4/13_all_r745-fix-64bit-crc32.diff [new file with mode: 0644]
www-servers/lighttpd/files/digest-lighttpd-1.4.4-r2 [moved from www-servers/lighttpd/files/digest-lighttpd-1.4.4-r1 with 100% similarity]
www-servers/lighttpd/lighttpd-1.4.4-r2.ebuild [moved from www-servers/lighttpd/lighttpd-1.4.4-r1.ebuild with 98% similarity]

index 8dc13c798a5a59c9bfe75f3d4ff97f1a592ef52f..f9e419cf0cc129543cbfa0ccb8b5f21224b67aab 100644 (file)
@@ -1,6 +1,19 @@
 # ChangeLog for www-servers/lighttpd
 # Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/ChangeLog,v 1.47 2005/09/22 09:39:30 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/ChangeLog,v 1.48 2005/09/29 17:29:27 ka0ttic Exp $
+
+*lighttpd-1.4.4-r2 (29 Sep 2005)
+
+  29 Sep 2005; Aaron Walker <ka0ttic@gentoo.org>
+  +files/1.4.4/07_all_r726-sce-set-if-HANDLER_GO_ON.diff,
+  +files/1.4.4/09_all_r728-handle-written-correctly.diff,
+  +files/1.4.4/11_all_r732-dont-starve-waiting-conns.diff,
+  +files/1.4.4/13_all_r745-fix-64bit-crc32.diff,
+  +files/1.4.4/08_all_r727-fix-another-error-msg-segv.diff,
+  +files/1.4.4/10_all_r729-display-content_ndx.diff,
+  +files/1.4.4/12_all_r736-fix-max-request-size.diff,
+  -lighttpd-1.4.4-r1.ebuild, +lighttpd-1.4.4-r2.ebuild:
+  Revision bump; more upstream fixes.
 
   22 Sep 2005; Aaron Walker <ka0ttic@gentoo.org>
   -files/1.4.3/01_all_r716-fix-remoteip-cache-keepalive.diff,
index 64472b62eede802b9ee753cf55e6d491e7822dd4..e8a4ed4e45ad2abb0ec917237c6137b4ef08ba90 100644 (file)
@@ -2,10 +2,10 @@
 Hash: SHA1
 
 MD5 15468c1601f8061e5ad2d5f62b39b964 lighttpd-1.4.3.ebuild 5143
-MD5 7cfdb1530a50feb5e61c8ccbf42edea0 lighttpd-1.4.4-r1.ebuild 5141
 MD5 5aaaf3e31839a20fb69fc5526e69d849 lighttpd-1.3.16.ebuild 2547
 MD5 49ded22216ffc6092d1a1e04a6e420c1 lighttpd-1.3.13-r3.ebuild 2607
-MD5 4d8249640a07c0685033fbe781ac456b ChangeLog 14914
+MD5 c40708fb4f213877b44b2a7709565ccc lighttpd-1.4.4-r2.ebuild 5141
+MD5 20a5c0f5453c8f514a82e24849319fe0 ChangeLog 15483
 MD5 6a9d4814404d8d51327e5b8306ee3d7e metadata.xml 726
 MD5 1d925aed297ec4541fb230dd19e11bc1 files/spawn-fcgi.confd 1076
 MD5 f984dc26b2bc491272d302ab453f6e6b files/lighttpd-1.3.13-ldap-binddn.diff 3863
@@ -20,7 +20,7 @@ MD5 5eb378dcd8905a09175df3e48953100c files/lighttpd-1.3.13-zope-deserves-lovins-
 MD5 8e76b9feaedbf0286936be381bc5ffac files/lighttpd.initd 1000
 MD5 8f9c2d7a51a85b60ef1a6da355083fd0 files/digest-lighttpd-1.4.3 66
 MD5 0c57eeef1963af5add8b9608e0bc0d0f files/lighttpd-1.3.13-no-mysql-means-no-mysql.diff 1456
-MD5 10ee947ef00d754e74198ff482c0527d files/digest-lighttpd-1.4.4-r1 66
+MD5 10ee947ef00d754e74198ff482c0527d files/digest-lighttpd-1.4.4-r2 66
 MD5 44374d14af9b69b8f60f8d73f14c848d files/lighttpd-1.3.13-pam-name.diff 564
 MD5 210f81ad7867965b19993d0a4d8d54e7 files/lighttpd.logrotate 488
 MD5 9c1407e95f62ed22da66c4ef5f69c3b5 files/conf/mod_cgi.conf 869
@@ -28,15 +28,22 @@ MD5 df5b2360ea380d988bf16905ab214286 files/conf/lighttpd.conf 8182
 MD5 b4c80dba9c626d5f89d3c3797ac6670c files/conf/mod_fastcgi.conf 661
 MD5 fef397e7bcf1b741dea211a555e1803c files/conf/mime-types.conf 3291
 MD5 3d3f73f5f3046cc609c2178424175a7a files/1.4.4/01_all_r716-fix-remoteip-cache-keepalive.diff 2902
+MD5 dec389763586af8f48bf671c92eb1c78 files/1.4.4/10_all_r729-display-content_ndx.diff 1035
 MD5 4aa695a0125bbde51ec234f3494b7364 files/1.4.4/05_all_r724-fix-error-msg-segv.diff 616
 MD5 8cb5ff1a3717873bf349a10cf5011af3 files/1.4.4/06_all_r725-fix-NULL-dereference.diff 332
+MD5 f924a986a483d7ce28f9484f18cd7770 files/1.4.4/07_all_r726-sce-set-if-HANDLER_GO_ON.diff 7020
 MD5 9edac090a187f3a1862f2277787df479 files/1.4.4/03_all_r722-fix-no-global-mysql-segv.diff 613
+MD5 9df7b7a076aea655916dbc179c2dbdca files/1.4.4/11_all_r732-dont-starve-waiting-conns.diff 866
+MD5 9b828b071da2581ae9b70b95cb7bb366 files/1.4.4/08_all_r727-fix-another-error-msg-segv.diff 678
+MD5 87ec2164d60e46b1893b972667724387 files/1.4.4/09_all_r728-handle-written-correctly.diff 3776
+MD5 68c835a600101e9be7bea9d49e3e22e9 files/1.4.4/12_all_r736-fix-max-request-size.diff 3005
 MD5 bb6d7e474027bfabdfcdfff3549498ae files/1.4.4/02_all_r721-add-case-302.diff 358
+MD5 79a9523d859fff7af5021850a7352a1e files/1.4.4/13_all_r745-fix-64bit-crc32.diff 829
 MD5 14fefc136222d1747894ce7f7e36c5ee files/1.4.4/04_all_r723-fix-mod_ssi-inf-loop.diff 1407
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFDMnwKEZCkKN40op4RApShAKCJRa1yWRu0pnRXRWgcdYRYgZVlGACdHehJ
-2R0/RtZbndPTlOIluCX7R/A=
-=WKPn
+iD8DBQFDPCSWEZCkKN40op4RAqhiAJ9jts56QMljvoeCPpkuXX5SdRD4PwCeLbu3
+AxnA8K2SikO4wMAnahlg5PQ=
+=Z4yz
 -----END PGP SIGNATURE-----
diff --git a/www-servers/lighttpd/files/1.4.4/07_all_r726-sce-set-if-HANDLER_GO_ON.diff b/www-servers/lighttpd/files/1.4.4/07_all_r726-sce-set-if-HANDLER_GO_ON.diff
new file mode 100644 (file)
index 0000000..872fa03
--- /dev/null
@@ -0,0 +1,269 @@
+diff --exclude='*~' --exclude='.*' -I '$Id:' -urN lighttpd-1.4.4.orig/src/stat_cache.c lighttpd-1.4.4/src/stat_cache.c
+--- lighttpd-1.4.4.orig/src/stat_cache.c       2005-09-27 00:54:27.000000000 -0400
++++ lighttpd-1.4.4/src/stat_cache.c    2005-09-27 00:54:44.000000000 -0400
+@@ -179,7 +179,6 @@
+       while (sc->files) {
+               int osize;
+               splay_tree *node = sc->files;
+-              stat_cache_entry *sce = node->data;
+ 
+               osize = sc->files->size;
+                       
+@@ -252,8 +251,7 @@
+       stat_cache *sc = srv->stat_cache;
+       size_t events;
+ 
+-
+-      UNUSED(revent);
++      UNUSED(_fce);
+       /* */
+ 
+       if ((revent & FDEVENT_IN) &&
+@@ -355,7 +353,10 @@
+       stat_cache_entry *sce = NULL;
+       stat_cache *sc;
+       struct stat st;
++      size_t k;
++#ifdef DEBUG_STAT_CACHE       
+       size_t i;
++#endif
+ 
+       int file_ndx;
+       splay_tree *file_node = NULL;
+@@ -456,125 +457,121 @@
+               return HANDLER_ERROR;
+       }
+ 
+-      
+-      if (S_ISREG(st.st_mode) || S_ISDIR(st.st_mode)) {
+-              size_t k;
+-
+-              if (S_ISREG(st.st_mode)) {
+-                      int fd;
+-                      /* see if we can open the file for reading */
+-                      if (-1 == (fd = open(name->ptr, O_RDONLY))) {
+-                              return HANDLER_ERROR;
+-                      }
+-                      close(fd);
++      if (S_ISREG(st.st_mode)) {
++              int fd;
++              /* see if we can open the file for reading */
++              if (-1 == (fd = open(name->ptr, O_RDONLY))) {
++                      return HANDLER_ERROR;
+               }
++              close(fd);
++      }
+ 
+-              if (NULL == sce) {
+-                      int osize = 0;
++      if (NULL == sce) {
++              int osize = 0;
+                      
+-                      if (sc->files) {
+-                              osize = sc->files->size;
+-                      }
++              if (sc->files) {
++                      osize = sc->files->size;
++              }
+ 
+-                      sce = stat_cache_entry_init();
+-                      buffer_copy_string_buffer(sce->name, name);
+-                      
+-                      sc->files = splaytree_insert(sc->files, file_ndx, sce); 
++              sce = stat_cache_entry_init();
++              buffer_copy_string_buffer(sce->name, name);
++              
++              sc->files = splaytree_insert(sc->files, file_ndx, sce); 
+ #ifdef DEBUG_STAT_CACHE       
+-                      if (ctrl.size == 0) {
+-                              ctrl.size = 16;
+-                              ctrl.used = 0;
+-                              ctrl.ptr = malloc(ctrl.size * sizeof(*ctrl.ptr));
+-                      } else if (ctrl.size == ctrl.used) {
+-                              ctrl.size += 16;
+-                              ctrl.ptr = realloc(ctrl.ptr, ctrl.size * sizeof(*ctrl.ptr));
+-                      }
++              if (ctrl.size == 0) {
++                      ctrl.size = 16;
++                      ctrl.used = 0;
++                      ctrl.ptr = malloc(ctrl.size * sizeof(*ctrl.ptr));
++              } else if (ctrl.size == ctrl.used) {
++                      ctrl.size += 16;
++                      ctrl.ptr = realloc(ctrl.ptr, ctrl.size * sizeof(*ctrl.ptr));
++              }
+ 
+-                      ctrl.ptr[ctrl.used++] = file_ndx;
++              ctrl.ptr[ctrl.used++] = file_ndx;
+ 
+-                      assert(sc->files);
+-                      assert(sc->files->data == sce);
+-                      assert(osize + 1 == splaytree_size(sc->files));
++              assert(sc->files);
++              assert(sc->files->data == sce);
++              assert(osize + 1 == splaytree_size(sc->files));
+ #endif
+-              }
++      }
+ 
+-              sce->st = st;
+-              sce->stat_ts = srv->cur_ts;
++      sce->st = st;
++      sce->stat_ts = srv->cur_ts;
+ 
+-              if (S_ISREG(st.st_mode)) {      
+-                      /* determine mimetype */
+-                      buffer_reset(sce->content_type);
++      if (S_ISREG(st.st_mode)) {      
++              /* determine mimetype */
++              buffer_reset(sce->content_type);
+               
+-                      for (k = 0; k < con->conf.mimetypes->used; k++) {
+-                              data_string *ds = (data_string *)con->conf.mimetypes->data[k];
+-                              buffer *type = ds->key;
+-                      
+-                              if (type->used == 0) continue;
++              for (k = 0; k < con->conf.mimetypes->used; k++) {
++                      data_string *ds = (data_string *)con->conf.mimetypes->data[k];
++                      buffer *type = ds->key;
++              
++                      if (type->used == 0) continue;
+ 
+-                              /* check if the right side is the same */
+-                              if (type->used > name->used) continue;
++                      /* check if the right side is the same */
++                      if (type->used > name->used) continue;
+ 
+-                              if (0 == strncasecmp(name->ptr + name->used - type->used, type->ptr, type->used - 1)) {
+-                                      buffer_copy_string_buffer(sce->content_type, ds->value);
+-                                      break;
+-                              }
++                      if (0 == strncasecmp(name->ptr + name->used - type->used, type->ptr, type->used - 1)) {
++                              buffer_copy_string_buffer(sce->content_type, ds->value);
++                              break;
+                       }
+-                      etag_create(sce->etag, &(sce->st));
++              }
++              etag_create(sce->etag, &(sce->st));
+ #ifdef HAVE_XATTR
+-                      if (buffer_is_empty(sce->content_type)) {
+-                              stat_cache_attr_get(sce->content_type, name->ptr);
+-                      }
+-#endif
++              if (buffer_is_empty(sce->content_type)) {
++                      stat_cache_attr_get(sce->content_type, name->ptr);
+               }
++#endif
++      }
+               
+ #ifdef HAVE_FAM_H
+-              if (sc->fam &&
+-                  (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM)) {
+-                      /* is this directory already registered ? */
+-                      if (!dir_node) {
+-                              fam_dir = fam_dir_entry_init();
+-                              fam_dir->fc = sc->fam;
++      if (sc->fam &&
++          (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM)) {
++              /* is this directory already registered ? */
++              if (!dir_node) {
++                      fam_dir = fam_dir_entry_init();
++                      fam_dir->fc = sc->fam;
+ 
+-                              buffer_copy_string_buffer(fam_dir->name, sc->dir_name);
+-                              
+-                              fam_dir->version = 1;
++                      buffer_copy_string_buffer(fam_dir->name, sc->dir_name);
++                      
++                      fam_dir->version = 1;
++                      
++                      fam_dir->req = calloc(1, sizeof(FAMRequest));
++                      
++                      if (0 != FAMMonitorDirectory(sc->fam, fam_dir->name->ptr, 
++                                                   fam_dir->req, fam_dir)) {
+                               
+-                              fam_dir->req = calloc(1, sizeof(FAMRequest));
++                              log_error_write(srv, __FILE__, __LINE__, "sbs", 
++                                              "monitoring dir failed:", 
++                                              fam_dir->name, 
++                                              FamErrlist[FAMErrno]);
+                               
+-                              if (0 != FAMMonitorDirectory(sc->fam, fam_dir->name->ptr, 
+-                                                           fam_dir->req, fam_dir)) {
+-                                      
+-                                      log_error_write(srv, __FILE__, __LINE__, "sbs", 
+-                                                      "monitoring dir failed:", 
+-                                                      fam_dir->name, 
+-                                                      FamErrlist[FAMErrno]);
+-                                      
+-                                      fam_dir_entry_free(fam_dir);
+-                              } else {
+-                                      int osize = 0;
+-
+-                                      if (sc->dirs) {
+-                                              osize = sc->dirs->size;
+-                                      }
+-
+-                                      sc->dirs = splaytree_insert(sc->dirs, dir_ndx, fam_dir); 
+-                                      assert(sc->dirs);
+-                                      assert(sc->dirs->data == fam_dir);
+-                                      assert(osize == (sc->dirs->size - 1));
+-                              }
++                              fam_dir_entry_free(fam_dir);
+                       } else {
+-                              fam_dir = dir_node->data;
++                              int osize = 0;
++
++                              if (sc->dirs) {
++                                      osize = sc->dirs->size;
++                              }
++
++                              sc->dirs = splaytree_insert(sc->dirs, dir_ndx, fam_dir); 
++                              assert(sc->dirs);
++                              assert(sc->dirs->data == fam_dir);
++                              assert(osize == (sc->dirs->size - 1));
+                       }
++              } else {
++                      fam_dir = dir_node->data;
++              }
++              
++              /* bind the fam_fc to the stat() cache entry */
+                       
+-                      /* bind the fam_fc to the stat() cache entry */
+-                      
+-                      if (fam_dir) {
+-                              sce->dir_version = fam_dir->version;
+-                              sce->dir_ndx     = dir_ndx;
+-                      }
++              if (fam_dir) {
++                      sce->dir_version = fam_dir->version;
++                      sce->dir_ndx     = dir_ndx;
+               }
+-#endif
+       }
++#endif
++
+       *ret_sce = sce;
+ 
+       return HANDLER_GO_ON;
+@@ -608,7 +605,7 @@
+ 
+ int stat_cache_trigger_cleanup(server *srv) {
+       stat_cache *sc;
+-      size_t max_ndx = 0, i, j;
++      size_t max_ndx = 0, i;
+       int *keys;
+ 
+       sc = srv->stat_cache;
+@@ -628,9 +625,11 @@
+               node = sc->files;
+               
+               if (node && (node->key == ndx)) {
++#ifdef DEBUG_STAT_CACHE       
++                      size_t j;
+                       int osize = splaytree_size(sc->files);
+                       stat_cache_entry *sce = node->data;
+-
++#endif
+                       stat_cache_entry_free(node->data);
+                       sc->files = splaytree_delete(sc->files, ndx);
+ 
diff --git a/www-servers/lighttpd/files/1.4.4/08_all_r727-fix-another-error-msg-segv.diff b/www-servers/lighttpd/files/1.4.4/08_all_r727-fix-another-error-msg-segv.diff
new file mode 100644 (file)
index 0000000..5c31bd0
--- /dev/null
@@ -0,0 +1,14 @@
+Modified: branches/lighttpd-merge-1.4.x/src/http-header-glue.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/http-header-glue.c       2005-09-22 08:00:28 UTC (rev 726)
++++ branches/lighttpd-merge-1.4.x/src/http-header-glue.c       2005-09-22 08:24:08 UTC (rev 727)
+@@ -281,7 +281,8 @@
+                                                       }
+                                               } else {
+                                                       log_error_write(srv, __FILE__, __LINE__, "ss", 
+-                                                                      con->request.http_if_modified_since, buf);
++                                                                      "DEBUG: Last-Modified check failed as the received timestamp was too long:", 
++                                                                      con->request.http_if_modified_since);
+                                                       
+                                                       con->http_status = 412;
+                                                       return HANDLER_FINISHED;
diff --git a/www-servers/lighttpd/files/1.4.4/09_all_r728-handle-written-correctly.diff b/www-servers/lighttpd/files/1.4.4/09_all_r728-handle-written-correctly.diff
new file mode 100644 (file)
index 0000000..cb76e78
--- /dev/null
@@ -0,0 +1,128 @@
+Modified: branches/lighttpd-merge-1.4.x/src/network_freebsd_sendfile.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/network_freebsd_sendfile.c       2005-09-22 08:24:08 UTC (rev 727)
++++ branches/lighttpd-merge-1.4.x/src/network_freebsd_sendfile.c       2005-09-22 09:08:06 UTC (rev 728)
+@@ -104,13 +104,14 @@
+                       }
+                       
+                       /* check which chunks have been written */
++                      cq->bytes_out += r;
++                      con->bytes_written += r;
+                       
+                       for(i = 0, tc = c; i < num_chunks; i++, tc = tc->next) {
+                               if (r >= (ssize_t)chunks[i].iov_len) {
+                                       /* written */
+                                       r -= chunks[i].iov_len;
+                                       tc->offset += chunks[i].iov_len;
+-                                      con->bytes_written += chunks[i].iov_len;
+                                       
+                                       if (chunk_finished) {
+                                               /* skip the chunks from further touches */
+@@ -124,7 +125,6 @@
+                                       /* partially written */
+                                       
+                                       tc->offset += r;
+-                                      con->bytes_written += r;
+                                       chunk_finished = 0;
+                                       
+                                       break;
+@@ -182,6 +182,7 @@
+                       
+                       c->offset += r;
+                       con->bytes_written += r;
++                      cq->bytes_out += r;
+                       
+                       if (c->offset == c->file.length) {
+                               chunk_finished = 1;
+
+Modified: branches/lighttpd-merge-1.4.x/src/network_linux_sendfile.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/network_linux_sendfile.c 2005-09-22 08:24:08 UTC (rev 727)
++++ branches/lighttpd-merge-1.4.x/src/network_linux_sendfile.c 2005-09-22 09:08:06 UTC (rev 728)
+@@ -95,7 +95,9 @@
+                       }
+                       
+                       /* check which chunks have been written */
+-                      
++                      cq->bytes_out += r;
++                      con->bytes_written += r;
++
+                       for(i = 0, tc = c; i < num_chunks; i++, tc = tc->next) {
+                               if (r >= (ssize_t)chunks[i].iov_len) {
+                                       /* written */
+@@ -119,8 +121,6 @@
+                                       break;
+                               }
+                       }
+-                      cq->bytes_out += r;
+-                      con->bytes_written += r;
+                       
+                       break;
+               }
+
+Modified: branches/lighttpd-merge-1.4.x/src/network_openssl.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/network_openssl.c        2005-09-22 08:24:08 UTC (rev 727)
++++ branches/lighttpd-merge-1.4.x/src/network_openssl.c        2005-09-22 09:08:06 UTC (rev 728)
+@@ -123,6 +123,7 @@
+                       } else {
+                               c->offset += r;
+                               con->bytes_written += r;
++                              cq->bytes_out += r;
+                       }
+                       
+                       if (c->offset == (off_t)c->mem->used - 1) {
+@@ -208,6 +209,7 @@
+                               } else {
+                                       c->offset += r;
+                                       con->bytes_written += r;
++                                      cq->bytes_out += r;
+                               }
+                       
+                               if (c->offset == c->file.length) {
+
+Modified: branches/lighttpd-merge-1.4.x/src/network_write.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/network_write.c  2005-09-22 08:24:08 UTC (rev 727)
++++ branches/lighttpd-merge-1.4.x/src/network_write.c  2005-09-22 09:08:06 UTC (rev 728)
+@@ -61,6 +61,7 @@
+                       
+                       c->offset += r;
+                       con->bytes_written += r;
++                      cq->bytes_out += r;
+                       
+                       if (c->offset == (off_t)c->mem->used - 1) {
+                               chunk_finished = 1;
+@@ -136,6 +137,7 @@
+ #endif
+                       c->offset += r;
+                       con->bytes_written += r;
++                      cq->bytes_out += r;
+                       
+                       if (c->offset == c->file.length) {
+                               chunk_finished = 1;
+
+Modified: branches/lighttpd-merge-1.4.x/src/network_writev.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/network_writev.c 2005-09-22 08:24:08 UTC (rev 727)
++++ branches/lighttpd-merge-1.4.x/src/network_writev.c 2005-09-22 09:08:06 UTC (rev 728)
+@@ -116,6 +116,9 @@
+                               }
+                       }
+                       
++                      cq->bytes_out += r;
++                      con->bytes_written += r;
++
+                       /* check which chunks have been written */
+                       
+                       for(i = 0, tc = c; i < num_chunks; i++, tc = tc->next) {
+@@ -142,9 +145,6 @@
+                               }
+                       }
+                       
+-                      cq->bytes_out += r;
+-                      con->bytes_written += r;
+-
+                       break;
+               }
+               case FILE_CHUNK: {
diff --git a/www-servers/lighttpd/files/1.4.4/10_all_r729-display-content_ndx.diff b/www-servers/lighttpd/files/1.4.4/10_all_r729-display-content_ndx.diff
new file mode 100644 (file)
index 0000000..01f2bb4
--- /dev/null
@@ -0,0 +1,24 @@
+Modified: branches/lighttpd-merge-1.4.x/src/configparser.y
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/configparser.y   2005-09-22 13:13:01 UTC (rev 729)
++++ branches/lighttpd-merge-1.4.x/src/configparser.y   2005-09-22 13:33:18 UTC (rev 730)
+@@ -162,7 +162,8 @@
+     array_insert_unique(ctx->current->value, B);
+     B = NULL;
+   } else {
+-    fprintf(stderr, "Duplicate config variable in conditional 1 %s: %s\n", 
++    fprintf(stderr, "Duplicate config variable in conditional %d %s: %s\n", 
++            ctx->current->context_ndx,
+             ctx->current->key->ptr, B->key->ptr);
+     ctx->ok = 0;
+     B->free(B);
+@@ -196,7 +197,8 @@
+       array_insert_unique(ctx->current->value, du);
+     }
+   } else {
+-    fprintf(stderr, "Undefined config variable in conditional 1 %s: %s\n", 
++    fprintf(stderr, "Undefined config variable in conditional %d %s: %s\n", 
++            ctx->current->context_ndx,
+             ctx->current->key->ptr, A->ptr);
+     ctx->ok = 0;
+   }
diff --git a/www-servers/lighttpd/files/1.4.4/11_all_r732-dont-starve-waiting-conns.diff b/www-servers/lighttpd/files/1.4.4/11_all_r732-dont-starve-waiting-conns.diff
new file mode 100644 (file)
index 0000000..a9f512f
--- /dev/null
@@ -0,0 +1,27 @@
+Modified: branches/lighttpd-merge-1.4.x/src/network.c
+===================================================================
+--- branches/lighttpd-merge-1.4.x/src/network.c        2005-09-22 13:45:33 UTC (rev 731)
++++ branches/lighttpd-merge-1.4.x/src/network.c        2005-09-23 16:31:49 UTC (rev 732)
+@@ -30,6 +30,7 @@
+       server     *srv = (server *)s;
+       server_socket *srv_socket = (server_socket *)context;
+       connection *con;
++      int loops = 0;
+       
+       UNUSED(context);
+       
+@@ -40,8 +41,11 @@
+                               revents);
+               return HANDLER_ERROR;
+       }
+-      
+-      while (NULL != (con = connection_accept(srv, srv_socket))) {
++
++      /* accept()s at most 100 connections directly
++       *
++       * we jump out after 100 to give the waiting connections a chance */    
++      for (loops = 0; loops < 100 && NULL != (con = connection_accept(srv, srv_socket)); loops++) {
+               handler_t r;
+               
+               connection_state_machine(srv, con);
+
diff --git a/www-servers/lighttpd/files/1.4.4/12_all_r736-fix-max-request-size.diff b/www-servers/lighttpd/files/1.4.4/12_all_r736-fix-max-request-size.diff
new file mode 100644 (file)
index 0000000..eb19fee
--- /dev/null
@@ -0,0 +1,91 @@
+Modified: src/base.h
+===================================================================
+--- src/base.h 2005-09-25 17:11:52 UTC (rev 735)
++++ src/base.h 2005-09-26 08:49:13 UTC (rev 736)
+@@ -444,6 +444,7 @@
+       unsigned short max_worker;
+       unsigned short max_fds;
+       unsigned short max_conns;
++      unsigned short max_request_size;
+       
+       unsigned short log_request_header_on_error;
+       unsigned short log_state_handling;
+@@ -464,7 +465,6 @@
+       buffer *ssl_ca_file;
+       unsigned short use_ipv6;
+       unsigned short is_ssl;
+-      unsigned short max_request_size;
+       
+       buffer *srv_token;
+       
+
+Modified: src/configfile.c
+===================================================================
+--- src/configfile.c   2005-09-25 17:11:52 UTC (rev 735)
++++ src/configfile.c   2005-09-26 08:49:13 UTC (rev 736)
+@@ -114,6 +114,7 @@
+       cv[41].destination = stat_cache_string;
+       
+       cv[42].destination = &(srv->srvconf.max_conns);
++      cv[12].destination = &(srv->srvconf.max_request_size);
+       srv->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
+ 
+       assert(srv->config_storage);
+@@ -131,8 +132,8 @@
+               s->error_handler = buffer_init();
+               s->server_tag    = buffer_init();
+               s->errorfile_prefix = buffer_init();
+-              s->max_keep_alive_requests = 128;
+-              s->max_keep_alive_idle = 30;
++              s->max_keep_alive_requests = 16;
++              s->max_keep_alive_idle = 5;
+               s->max_read_idle = 60;
+               s->max_write_idle = 360;
+               s->use_xattr     = 0;
+@@ -153,7 +154,6 @@
+               cv[8].destination = &(s->use_ipv6);
+               
+               
+-              cv[12].destination = &(s->max_request_size);
+               /* 13 max-worker */
+               cv[14].destination = s->document_root;
+               cv[15].destination = &(s->force_lower_case);
+
+Modified: src/request.c
+===================================================================
+--- src/request.c      2005-09-25 17:11:52 UTC (rev 735)
++++ src/request.c      2005-09-26 08:49:13 UTC (rev 736)
+@@ -969,6 +969,7 @@
+                       /* content-length is missing */
+                       log_error_write(srv, __FILE__, __LINE__, "s", 
+                                       "POST-request, but content-length missing -> 411");
++                      con->keep_alive = 0;
+                       
+                       con->http_status = 411;
+                       return 0;
+@@ -977,20 +978,22 @@
+               /* don't handle more the SSIZE_MAX bytes in content-length */
+               if (con->request.content_length > SSIZE_MAX) {
+                       con->http_status = 413; 
++                      con->keep_alive = 0;
+ 
+                       log_error_write(srv, __FILE__, __LINE__, "sds", 
+                                       "request-size too long:", con->request.content_length, "-> 413");
+                       return 0;
+               }
+-              
++
+               /* divide by 1024 as srvconf.max_request_size is in kBytes */
+-              if (srv_socket->max_request_size != 0 &&
+-                  (con->request.content_length >> 10) > srv_socket->max_request_size) {
++              if (srv->srvconf.max_request_size != 0 &&
++                  (con->request.content_length >> 10) > srv->srvconf.max_request_size) {
+                       /* the request body itself is larger then 
+                        * our our max_request_size
+                        */
+               
+                       con->http_status = 413;
++                      con->keep_alive = 0;
+               
+                       log_error_write(srv, __FILE__, __LINE__, "sds", 
+                                       "request-size too long:", con->request.content_length, "-> 413");
diff --git a/www-servers/lighttpd/files/1.4.4/13_all_r745-fix-64bit-crc32.diff b/www-servers/lighttpd/files/1.4.4/13_all_r745-fix-64bit-crc32.diff
new file mode 100644 (file)
index 0000000..559d5d4
--- /dev/null
@@ -0,0 +1,33 @@
+Index: crc32.c
+===================================================================
+--- src/crc32.c        (revision 735)
++++ src/crc32.c        (working copy)
+@@ -70,11 +70,9 @@
+ };
+ 
+ 
+-unsigned long
+-generate_crc32c(char *buffer, size_t length)
+-{
+-  unsigned int i;
+-  unsigned long crc32 = ~0L;
++uint32_t generate_crc32c(char *buffer, size_t length) {
++  size_t i;
++  uint32_t crc32 = ~0L;
+ 
+   for (i = 0; i < length; i++){
+       CRC32C(crc32, (unsigned char)buffer[i]);
+Index: crc32.h
+===================================================================
+--- src/crc32.h        (revision 735)
++++ src/crc32.h        (working copy)
+@@ -2,7 +2,8 @@
+ #define __crc32cr_table_h__
+ 
+ #include <sys/types.h>
++#include <stdint.h>
+ 
+-unsigned long generate_crc32c(char *string, size_t length);
++uint32_t generate_crc32c(char *string, size_t length);
+ 
+ #endif
similarity index 98%
rename from www-servers/lighttpd/lighttpd-1.4.4-r1.ebuild
rename to www-servers/lighttpd/lighttpd-1.4.4-r2.ebuild
index 0b6f6a731e1d3f069266caa2cea049fcd70ab478..cb77056eff34e895f08741d8ee198105d8180c19 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/lighttpd-1.4.4-r1.ebuild,v 1.1 2005/09/21 19:28:39 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/lighttpd-1.4.4-r2.ebuild,v 1.1 2005/09/29 17:29:28 ka0ttic Exp $
 
 inherit eutils depend.php