From 1175ccec7350fd247978578e9b336cc126f6c3ce Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Sat, 15 Jul 2006 19:51:05 +0000 Subject: [PATCH] - svn 1173 Changed files: lighttpd-branch.diff -> 1.5 --- lighttpd-branch.diff | 2513 ++++++++++++++++++------------------------ 1 file changed, 1101 insertions(+), 1412 deletions(-) diff --git a/lighttpd-branch.diff b/lighttpd-branch.diff index 3104f45..e6de803 100644 --- a/lighttpd-branch.diff +++ b/lighttpd-branch.diff @@ -1,46 +1,4 @@ ---- lighttpd-1.4.11/Makefile.in 2006-03-07 14:21:08.000000000 +0200 -+++ lighttpd-1.4.12/Makefile.in 2006-07-11 21:48:16.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -41,7 +41,7 @@ - $(srcdir)/distribute.sh.in $(srcdir)/lighttpd.spec.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - compile config.guess config.sub depcomp install-sh ltmain.sh \ -- missing mkinstalldirs -+ missing - subdir = . - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/configure.in -@@ -49,7 +49,7 @@ - $(ACLOCAL_M4) - am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = config.h - CONFIG_CLEAN_FILES = lighttpd.spec distribute.sh - SOURCES = -@@ -126,7 +126,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -169,6 +168,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/NEWS 2006-03-09 19:34:33.000000000 +0200 +--- ../lighttpd-1.4.11/NEWS 2006-03-09 19:34:33.000000000 +0200 +++ lighttpd-1.4.12/NEWS 2006-07-11 22:07:54.000000000 +0300 @@ -3,6 +3,23 @@ NEWS @@ -66,8 +24,8 @@ - 1.4.11 - 2006-03-09 * added ability to specify which ip address spawn-fci listens on ---- lighttpd-1.4.11/configure.in 2006-03-04 16:32:38.000000000 +0200 -+++ lighttpd-1.4.12/configure.in 2006-07-11 22:07:54.000000000 +0300 +--- ../lighttpd-1.4.11/configure.in 2006-03-04 16:32:38.000000000 +0200 ++++ lighttpd-1.4.12/configure.in 2006-07-15 22:43:22.000000000 +0300 @@ -1,7 +1,7 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. @@ -109,7 +67,41 @@ fi dnl Check for gdbm -@@ -440,7 +456,7 @@ +@@ -381,30 +397,11 @@ + + AC_MSG_RESULT($WITH_LUA) + if test "$WITH_LUA" != "no"; then +- AC_PATH_PROG(LUACONFIG, lua-config) +- +- if test x"$LUACONFIG" != x; then +- LUA_CFLAGS=`$LUACONFIG --include` +- LUA_LIBS=`$LUACONFIG --libs --extralibs` ++ # try pkgconfig ++ PKG_CHECK_MODULES(LUA, lua >= 5.1, [ + AC_DEFINE([HAVE_LUA], [1], [liblua]) + AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) +- else +- AC_CHECK_LIB(lua, lua_open, [ +- AC_CHECK_HEADERS([lua.h],[ +- LUA_LIBS="-llua -llualib" +- AC_DEFINE([HAVE_LUA], [1], [liblua]) +- AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) +- ]) +- ]) +- fi +- +- if test x"$LUA_LIBS" = x; then +- # try pkgconfig +- PKG_CHECK_MODULES(LUA, lua, [ +- AC_DEFINE([HAVE_LUA], [1], [liblua]) +- AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) +- ]) +- fi ++ ]) + + AC_SUBST(LUA_CFLAGS) + AC_SUBST(LUA_LIBS) +@@ -440,7 +437,7 @@ esac AC_CHECK_FUNCS([dup2 getcwd inet_ntoa inet_ntop memset mmap munmap strchr \ @@ -118,7 +110,7 @@ gethostbyname poll sigtimedwait epoll_ctl getrlimit chroot \ getuid select signal pathconf madvise posix_fadvise posix_madvise \ writev sigaction sendfile64 send_file kqueue port_create localtime_r]) -@@ -538,7 +554,7 @@ +@@ -538,7 +535,7 @@ AC_OUTPUT @@ -127,7 +119,7 @@ plugins="mod_rewrite mod_redirect mod_ssi mod_trigger_b4_dl" features="regex-conditionals" -@@ -642,6 +658,14 @@ +@@ -642,6 +639,14 @@ disable_feature="$disable_feature $features" fi @@ -142,40 +134,7 @@ ## output $ECHO ---- lighttpd-1.4.11/cygwin/Makefile.in 2006-03-07 14:20:57.000000000 +0200 -+++ lighttpd-1.4.12/cygwin/Makefile.in 2006-07-11 21:48:12.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -43,7 +43,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = lighttpd.README - SOURCES = -@@ -101,7 +101,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -144,6 +143,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/cygwin/lighttpd.README 2006-03-07 14:22:19.000000000 +0200 +--- ../lighttpd-1.4.11/cygwin/lighttpd.README 2006-03-07 14:22:19.000000000 +0200 +++ lighttpd-1.4.12/cygwin/lighttpd.README 2006-07-11 22:08:04.000000000 +0300 @@ -1,114 +1,114 @@ -lighttpd @@ -406,7 +365,7 @@ +Cygwin port maintained by: Jan Kneschke +Please address all questions to the Cygwin mailing list at + ---- lighttpd-1.4.11/cygwin/lighttpd.README.in 2005-08-11 01:26:59.000000000 +0300 +--- ../lighttpd-1.4.11/cygwin/lighttpd.README.in 2005-08-11 01:26:59.000000000 +0300 +++ lighttpd-1.4.12/cygwin/lighttpd.README.in 2006-07-11 22:07:53.000000000 +0300 @@ -1,114 +1,114 @@ -lighttpd @@ -637,40 +596,7 @@ +Cygwin port maintained by: Jan Kneschke +Please address all questions to the Cygwin mailing list at + ---- lighttpd-1.4.11/doc/Makefile.in 2006-03-07 14:20:57.000000000 +0200 -+++ lighttpd-1.4.12/doc/Makefile.in 2006-07-11 21:48:12.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -43,7 +43,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -105,7 +105,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -148,6 +147,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/doc/authentication.txt 2006-01-12 20:34:26.000000000 +0200 +--- ../lighttpd-1.4.11/doc/authentication.txt 2006-01-12 20:34:26.000000000 +0200 +++ lighttpd-1.4.12/doc/authentication.txt 2006-07-11 22:07:54.000000000 +0300 @@ -7,8 +7,8 @@ ---------------- @@ -683,7 +609,7 @@ :abstract: The auth module provides ... ---- lighttpd-1.4.11/doc/compress.txt 2005-08-11 01:26:16.000000000 +0300 +--- ../lighttpd-1.4.11/doc/compress.txt 2005-08-11 01:26:16.000000000 +0300 +++ lighttpd-1.4.12/doc/compress.txt 2006-07-11 22:07:54.000000000 +0300 @@ -22,12 +22,38 @@ =========== @@ -758,7 +684,7 @@ Compressing Dynamic Content =========================== ---- lighttpd-1.4.11/doc/configuration.txt 2006-03-09 02:10:40.000000000 +0200 +--- ../lighttpd-1.4.11/doc/configuration.txt 2006-03-09 02:10:40.000000000 +0200 +++ lighttpd-1.4.12/doc/configuration.txt 2006-07-11 22:07:54.000000000 +0300 @@ -7,8 +7,8 @@ ------------ @@ -782,7 +708,7 @@ +debug.log-condition-cache-handling + for developers only + default: disabled ---- lighttpd-1.4.11/doc/fastcgi.txt 2006-02-16 17:03:52.000000000 +0200 +--- ../lighttpd-1.4.11/doc/fastcgi.txt 2006-02-16 17:03:52.000000000 +0200 +++ lighttpd-1.4.12/doc/fastcgi.txt 2006-07-11 22:07:54.000000000 +0300 @@ -144,8 +144,8 @@ PHP can extract PATH_INFO from it (default: disabled) @@ -795,7 +721,7 @@ If bin-path is set: ---- lighttpd-1.4.11/doc/lighttpd.conf 2006-03-04 14:41:12.000000000 +0200 +--- ../lighttpd-1.4.11/doc/lighttpd.conf 2006-03-04 14:41:12.000000000 +0200 +++ lighttpd-1.4.12/doc/lighttpd.conf 2006-07-11 22:07:54.000000000 +0300 @@ -172,10 +172,11 @@ #dir-listing.activate = "enable" @@ -813,7 +739,7 @@ ### only root can use these options # ---- lighttpd-1.4.11/doc/performance.txt 2006-02-02 13:01:08.000000000 +0200 +--- ../lighttpd-1.4.11/doc/performance.txt 2006-02-02 13:01:08.000000000 +0200 +++ lighttpd-1.4.12/doc/performance.txt 2006-07-11 22:07:54.000000000 +0300 @@ -183,6 +183,8 @@ @@ -824,7 +750,7 @@ Platform-Specific Notes ======================= ---- lighttpd-1.4.11/doc/secdownload.txt 2005-12-20 15:58:58.000000000 +0200 +--- ../lighttpd-1.4.11/doc/secdownload.txt 2005-12-20 15:58:58.000000000 +0200 +++ lighttpd-1.4.12/doc/secdownload.txt 2006-07-11 22:07:54.000000000 +0300 @@ -118,7 +118,7 @@ $secret = "verysecret"; @@ -835,7 +761,7 @@ $f = "/secret-file.txt"; # current timestamp ---- lighttpd-1.4.11/lighttpd.spec 2006-03-07 14:22:18.000000000 +0200 +--- ../lighttpd-1.4.11/lighttpd.spec 2006-03-07 14:22:18.000000000 +0200 +++ lighttpd-1.4.12/lighttpd.spec 2006-07-11 22:07:58.000000000 +0300 @@ -1,6 +1,6 @@ Summary: A fast webserver with minimal memory-footprint (lighttpd) @@ -845,40 +771,7 @@ Release: 1 Source: http://jan.kneschke.de/projects/lighttpd/download/lighttpd-%version.tar.gz Packager: Jan Kneschke ---- lighttpd-1.4.11/openwrt/Makefile.in 2006-03-07 14:20:58.000000000 +0200 -+++ lighttpd-1.4.12/openwrt/Makefile.in 2006-07-11 21:48:12.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -43,7 +43,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = control lighttpd.mk - SOURCES = -@@ -101,7 +101,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -144,6 +143,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/openwrt/control 2006-03-07 14:22:19.000000000 +0200 +--- ../lighttpd-1.4.11/openwrt/control 2006-03-07 14:22:19.000000000 +0200 +++ lighttpd-1.4.12/openwrt/control 2006-07-11 22:08:05.000000000 +0300 @@ -1,8 +1,8 @@ Package: lighttpd @@ -891,7 +784,7 @@ Section: net Priority: optional Depends: ---- lighttpd-1.4.11/openwrt/lighttpd.mk 2006-03-07 14:22:19.000000000 +0200 +--- ../lighttpd-1.4.11/openwrt/lighttpd.mk 2006-03-07 14:22:19.000000000 +0200 +++ lighttpd-1.4.12/openwrt/lighttpd.mk 2006-07-11 22:08:05.000000000 +0300 @@ -10,7 +10,7 @@ @@ -902,287 +795,85 @@ LIGHTTPD_TARGET=.built LIGHTTPD_DIR=$(BUILD_DIR)/$(LIGHTTPD) LIGHTTPD_IPK=$(BUILD_DIR)/$(LIGHTTPD)_mipsel.ipk ---- lighttpd-1.4.11/src/Makefile.am 2006-03-07 14:20:20.000000000 +0200 -+++ lighttpd-1.4.12/src/Makefile.am 2006-07-11 22:07:52.000000000 +0300 -@@ -82,9 +82,9 @@ - - lib_LTLIBRARIES += mod_webdav.la - mod_webdav_la_SOURCES = mod_webdav.c --mod_webdav_la_CFLAGS = $(AM_CFLAGS) $(XML_CFLAGS) $(SQLITE_CFLAGS) -+mod_webdav_la_CFLAGS = $(AM_CFLAGS) $(XML_CFLAGS) $(SQLITE_CFLAGS) - mod_webdav_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined --mod_webdav_la_LIBADD = $(common_libadd) $(XML_LIBS) $(SQLITE_LIBS) -+mod_webdav_la_LIBADD = $(common_libadd) $(XML_LIBS) $(SQLITE_LIBS) $(UUID_LIB) - - lib_LTLIBRARIES += mod_cml.la - mod_cml_la_SOURCES = mod_cml.c mod_cml_lua.c mod_cml_funcs.c ---- lighttpd-1.4.11/src/Makefile.in 2006-03-07 14:21:02.000000000 +0200 -+++ lighttpd-1.4.12/src/Makefile.in 2006-07-11 22:04:27.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -16,8 +16,6 @@ - +--- ../lighttpd-1.4.11/src/Makefile.am 2006-03-07 14:20:20.000000000 +0200 ++++ lighttpd-1.4.12/src/Makefile.am 2006-07-15 22:43:21.000000000 +0300 +@@ -16,18 +16,24 @@ + else + configparser.y: lemon + mod_ssi_exprparser.y: lemon ++http_resp_parser.y: lemon + + configparser.c configparser.h: configparser.y + rm -f configparser.h +- $(LEMON) -q $(srcdir)/configparser.y $(srcdir)/lempar.c ++ $(LEMON) -q $(srcdir)/$< $(srcdir)/lempar.c ++ ++http_resp_parser.c http_resp_parser.h: http_resp_parser.y ++ rm -f http_resp_parser.h ++ $(LEMON) -q $(srcdir)/$< $(srcdir)/lempar.c + + mod_ssi_exprparser.c mod_ssi_exprparser.h: mod_ssi_exprparser.y + rm -f mod_ssi_exprparser.h +- $(LEMON) -q $(srcdir)/mod_ssi_exprparser.y $(srcdir)/lempar.c ++ $(LEMON) -q $(srcdir)/$< $(srcdir)/lempar.c + endif + configfile.c: configparser.h + mod_ssi_expr.c: mod_ssi_exprparser.h ++http_resp.c: http_resp_parser.h --SOURCES = $(liblightcomp_la_SOURCES) $(mod_access_la_SOURCES) $(mod_accesslog_la_SOURCES) $(mod_alias_la_SOURCES) $(mod_auth_la_SOURCES) $(mod_cgi_la_SOURCES) $(mod_cml_la_SOURCES) $(mod_compress_la_SOURCES) $(mod_dirlisting_la_SOURCES) $(mod_evasive_la_SOURCES) $(mod_evhost_la_SOURCES) $(mod_expire_la_SOURCES) $(mod_fastcgi_la_SOURCES) $(mod_flv_streaming_la_SOURCES) $(mod_indexfile_la_SOURCES) $(mod_mysql_vhost_la_SOURCES) $(mod_proxy_la_SOURCES) $(mod_redirect_la_SOURCES) $(mod_rewrite_la_SOURCES) $(mod_rrdtool_la_SOURCES) $(mod_scgi_la_SOURCES) $(mod_secdownload_la_SOURCES) $(mod_setenv_la_SOURCES) $(mod_simple_vhost_la_SOURCES) $(mod_ssi_la_SOURCES) $(mod_staticfile_la_SOURCES) $(mod_status_la_SOURCES) $(mod_trigger_b4_dl_la_SOURCES) $(mod_userdir_la_SOURCES) $(mod_usertrack_la_SOURCES) $(mod_webdav_la_SOURCES) $(lemon_SOURCES) $(lighttpd_SOURCES) $(proc_open_SOURCES) $(spawn_fcgi_SOURCES) -- - srcdir = @srcdir@ - top_srcdir = @top_srcdir@ - VPATH = @srcdir@ -@@ -57,7 +55,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -@@ -84,7 +82,8 @@ - inet_ntop_cache.c crc32.c connections-glue.c configfile-glue.c \ - http-header-glue.c network_write.c network_linux_sendfile.c \ - network_freebsd_sendfile.c network_writev.c \ -- network_solaris_sendfilev.c network_openssl.c splaytree.c -+ network_solaris_sendfilev.c network_openssl.c splaytree.c \ -+ http_resp.c http_resp_parser.c - am__objects_1 = liblightcomp_la-buffer.lo liblightcomp_la-log.lo \ - liblightcomp_la-keyvalue.lo liblightcomp_la-chunk.lo \ - liblightcomp_la-http_chunk.lo liblightcomp_la-stream.lo \ -@@ -111,7 +110,8 @@ - liblightcomp_la-network_writev.lo \ - liblightcomp_la-network_solaris_sendfilev.lo \ - liblightcomp_la-network_openssl.lo \ -- liblightcomp_la-splaytree.lo -+ liblightcomp_la-splaytree.lo liblightcomp_la-http_resp.lo \ -+ liblightcomp_la-http_resp_parser.lo - @NO_RDYNAMIC_TRUE@am_liblightcomp_la_OBJECTS = $(am__objects_1) - liblightcomp_la_OBJECTS = $(am_liblightcomp_la_OBJECTS) - @NO_RDYNAMIC_TRUE@am_liblightcomp_la_rpath = -rpath $(libdir) -@@ -193,6 +193,9 @@ - mod_simple_vhost_la_DEPENDENCIES = $(am__DEPENDENCIES_2) - am_mod_simple_vhost_la_OBJECTS = mod_simple_vhost.lo - mod_simple_vhost_la_OBJECTS = $(am_mod_simple_vhost_la_OBJECTS) -+mod_sql_vhost_core_la_DEPENDENCIES = $(am__DEPENDENCIES_2) -+am_mod_sql_vhost_core_la_OBJECTS = mod_sql_vhost_core.lo -+mod_sql_vhost_core_la_OBJECTS = $(am_mod_sql_vhost_core_la_OBJECTS) - mod_ssi_la_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) - am_mod_ssi_la_OBJECTS = mod_ssi_exprparser.lo mod_ssi_expr.lo \ - mod_ssi.lo -@@ -236,7 +239,8 @@ - connections-glue.c configfile-glue.c http-header-glue.c \ - network_write.c network_linux_sendfile.c \ - network_freebsd_sendfile.c network_writev.c \ -- network_solaris_sendfilev.c network_openssl.c splaytree.c -+ network_solaris_sendfilev.c network_openssl.c splaytree.c \ -+ http_resp.c http_resp_parser.c - am__objects_2 = buffer.$(OBJEXT) log.$(OBJEXT) keyvalue.$(OBJEXT) \ - chunk.$(OBJEXT) http_chunk.$(OBJEXT) stream.$(OBJEXT) \ - fdevent.$(OBJEXT) stat_cache.$(OBJEXT) plugin.$(OBJEXT) \ -@@ -254,7 +258,8 @@ - network_linux_sendfile.$(OBJEXT) \ - network_freebsd_sendfile.$(OBJEXT) network_writev.$(OBJEXT) \ - network_solaris_sendfilev.$(OBJEXT) network_openssl.$(OBJEXT) \ -- splaytree.$(OBJEXT) -+ splaytree.$(OBJEXT) http_resp.$(OBJEXT) \ -+ http_resp_parser.$(OBJEXT) - @NO_RDYNAMIC_FALSE@am__objects_3 = $(am__objects_2) - am__objects_4 = server.$(OBJEXT) response.$(OBJEXT) \ - connections.$(OBJEXT) network.$(OBJEXT) configfile.$(OBJEXT) \ -@@ -282,8 +287,8 @@ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) - CCLD = $(CC) --LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -- $(AM_LDFLAGS) $(LDFLAGS) -o $@ -+LINK = $(LIBTOOL) --tag=CC --mode=link "$(CCLD)" $(AM_CFLAGS) \ -+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ - SOURCES = $(liblightcomp_la_SOURCES) $(mod_access_la_SOURCES) \ - $(mod_accesslog_la_SOURCES) $(mod_alias_la_SOURCES) \ - $(mod_auth_la_SOURCES) $(mod_cgi_la_SOURCES) \ -@@ -296,11 +301,12 @@ - $(mod_rewrite_la_SOURCES) $(mod_rrdtool_la_SOURCES) \ - $(mod_scgi_la_SOURCES) $(mod_secdownload_la_SOURCES) \ - $(mod_setenv_la_SOURCES) $(mod_simple_vhost_la_SOURCES) \ -- $(mod_ssi_la_SOURCES) $(mod_staticfile_la_SOURCES) \ -- $(mod_status_la_SOURCES) $(mod_trigger_b4_dl_la_SOURCES) \ -- $(mod_userdir_la_SOURCES) $(mod_usertrack_la_SOURCES) \ -- $(mod_webdav_la_SOURCES) $(lemon_SOURCES) $(lighttpd_SOURCES) \ -- $(proc_open_SOURCES) $(spawn_fcgi_SOURCES) -+ $(mod_sql_vhost_core_la_SOURCES) $(mod_ssi_la_SOURCES) \ -+ $(mod_staticfile_la_SOURCES) $(mod_status_la_SOURCES) \ -+ $(mod_trigger_b4_dl_la_SOURCES) $(mod_userdir_la_SOURCES) \ -+ $(mod_usertrack_la_SOURCES) $(mod_webdav_la_SOURCES) \ -+ $(lemon_SOURCES) $(lighttpd_SOURCES) $(proc_open_SOURCES) \ -+ $(spawn_fcgi_SOURCES) - DIST_SOURCES = $(am__liblightcomp_la_SOURCES_DIST) \ - $(mod_access_la_SOURCES) $(mod_accesslog_la_SOURCES) \ - $(mod_alias_la_SOURCES) $(mod_auth_la_SOURCES) \ -@@ -313,7 +319,8 @@ - $(mod_redirect_la_SOURCES) $(mod_rewrite_la_SOURCES) \ - $(mod_rrdtool_la_SOURCES) $(mod_scgi_la_SOURCES) \ - $(mod_secdownload_la_SOURCES) $(mod_setenv_la_SOURCES) \ -- $(mod_simple_vhost_la_SOURCES) $(mod_ssi_la_SOURCES) \ -+ $(mod_simple_vhost_la_SOURCES) \ -+ $(mod_sql_vhost_core_la_SOURCES) $(mod_ssi_la_SOURCES) \ - $(mod_staticfile_la_SOURCES) $(mod_status_la_SOURCES) \ - $(mod_trigger_b4_dl_la_SOURCES) $(mod_userdir_la_SOURCES) \ - $(mod_usertrack_la_SOURCES) $(mod_webdav_la_SOURCES) \ -@@ -375,7 +382,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -418,6 +424,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -@@ -479,7 +486,7 @@ + common_src=buffer.c log.c \ + keyvalue.c chunk.c \ +@@ -46,7 +52,7 @@ network_write.c network_linux_sendfile.c \ network_freebsd_sendfile.c network_writev.c \ network_solaris_sendfilev.c network_openssl.c \ - splaytree.c + splaytree.c http_resp.c http_resp_parser.c + + src = server.c response.c connections.c network.c \ + configfile.c configparser.c request.c proc_open.c +@@ -82,9 +88,9 @@ - src = server.c response.c connections.c network.c configfile.c \ - configparser.c request.c proc_open.c $(am__append_2) -@@ -491,10 +498,11 @@ - #mod_httptls_la_LIBADD = $(common_libadd) - lib_LTLIBRARIES = $(am__append_1) mod_flv_streaming.la mod_evasive.la \ - mod_webdav.la mod_cml.la mod_trigger_b4_dl.la \ -- mod_mysql_vhost.la mod_cgi.la mod_scgi.la mod_staticfile.la \ -- mod_dirlisting.la mod_indexfile.la mod_setenv.la mod_alias.la \ -- mod_userdir.la mod_rrdtool.la mod_usertrack.la mod_proxy.la \ -- mod_ssi.la mod_secdownload.la mod_expire.la mod_evhost.la \ -+ mod_mysql_vhost.la mod_sql_vhost_core.la mod_cgi.la \ -+ mod_scgi.la mod_staticfile.la mod_dirlisting.la \ -+ mod_indexfile.la mod_setenv.la mod_alias.la mod_userdir.la \ -+ mod_rrdtool.la mod_usertrack.la mod_proxy.la mod_ssi.la \ -+ mod_secdownload.la mod_expire.la mod_evhost.la \ - mod_simple_vhost.la mod_fastcgi.la mod_access.la \ - mod_compress.la mod_auth.la mod_rewrite.la mod_redirect.la \ - mod_status.la mod_accesslog.la -@@ -511,9 +519,9 @@ - mod_evasive_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined - mod_evasive_la_LIBADD = $(common_libadd) + lib_LTLIBRARIES += mod_webdav.la mod_webdav_la_SOURCES = mod_webdav.c -mod_webdav_la_CFLAGS = $(AM_CFLAGS) $(XML_CFLAGS) $(SQLITE_CFLAGS) +mod_webdav_la_CFLAGS = $(AM_CFLAGS) $(XML_CFLAGS) $(SQLITE_CFLAGS) mod_webdav_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined -mod_webdav_la_LIBADD = $(common_libadd) $(XML_LIBS) $(SQLITE_LIBS) +mod_webdav_la_LIBADD = $(common_libadd) $(XML_LIBS) $(SQLITE_LIBS) $(UUID_LIB) + + lib_LTLIBRARIES += mod_cml.la mod_cml_la_SOURCES = mod_cml.c mod_cml_lua.c mod_cml_funcs.c - mod_cml_la_CFLAGS = $(AM_CFLAGS) $(LUA_CFLAGS) - mod_cml_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined -@@ -525,6 +533,9 @@ - mod_mysql_vhost_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined +@@ -103,6 +109,11 @@ mod_mysql_vhost_la_LIBADD = $(MYSQL_LIBS) $(common_libadd) mod_mysql_vhost_la_CPPFLAGS = $(MYSQL_INCLUDE) + ++lib_LTLIBRARIES += mod_sql_vhost_core.la +mod_sql_vhost_core_la_SOURCES = mod_sql_vhost_core.c +mod_sql_vhost_core_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined +mod_sql_vhost_core_la_LIBADD = $(common_libadd) ++ + lib_LTLIBRARIES += mod_cgi.la mod_cgi_la_SOURCES = mod_cgi.c mod_cgi_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined - mod_cgi_la_LIBADD = $(common_libadd) -@@ -608,7 +619,8 @@ +@@ -240,7 +251,8 @@ mod_ssi.h mod_ssi_expr.h inet_ntop_cache.h \ configparser.h mod_ssi_exprparser.h \ sys-mmap.h sys-socket.h mod_cml.h mod_cml_funcs.h \ - splaytree.h proc_open.h + splaytree.h proc_open.h http_resp.h mod_sql_vhost_core.h \ -+ sys-files.h sys-process.h sys-strings.h - - lighttpd_SOURCES = $(src) - lighttpd_LDADD = $(PCRE_LIB) $(DL_LIB) $(SENDFILE_LIB) $(ATTR_LIB) $(common_libadd) $(SSL_LIB) $(FAM_LIBS) -@@ -739,6 +751,8 @@ - $(LINK) -rpath $(libdir) $(mod_setenv_la_LDFLAGS) $(mod_setenv_la_OBJECTS) $(mod_setenv_la_LIBADD) $(LIBS) - mod_simple_vhost.la: $(mod_simple_vhost_la_OBJECTS) $(mod_simple_vhost_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(mod_simple_vhost_la_LDFLAGS) $(mod_simple_vhost_la_OBJECTS) $(mod_simple_vhost_la_LIBADD) $(LIBS) -+mod_sql_vhost_core.la: $(mod_sql_vhost_core_la_OBJECTS) $(mod_sql_vhost_core_la_DEPENDENCIES) -+ $(LINK) -rpath $(libdir) $(mod_sql_vhost_core_la_LDFLAGS) $(mod_sql_vhost_core_la_OBJECTS) $(mod_sql_vhost_core_la_LIBADD) $(LIBS) - mod_ssi.la: $(mod_ssi_la_OBJECTS) $(mod_ssi_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(mod_ssi_la_LDFLAGS) $(mod_ssi_la_OBJECTS) $(mod_ssi_la_LIBADD) $(LIBS) - mod_staticfile.la: $(mod_staticfile_la_OBJECTS) $(mod_staticfile_la_DEPENDENCIES) -@@ -863,6 +877,8 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_auth.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_auth_digest.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_chunk.Po@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_resp.Po@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http_resp_parser.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop_cache.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/joblist.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyvalue.Po@am__quote@ -@@ -890,6 +906,8 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-fdevent_solaris_devpoll.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-http-header-glue.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-http_chunk.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-http_resp.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-http_resp_parser.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-inet_ntop_cache.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-joblist.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblightcomp_la-keyvalue.Plo@am__quote@ -@@ -932,6 +950,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_secure_download.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_setenv.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_simple_vhost.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_sql_vhost_core.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_ssi.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_ssi_expr.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_ssi_exprparser.Plo@am__quote@ -@@ -1247,6 +1266,20 @@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblightcomp_la_CFLAGS) $(CFLAGS) -c -o liblightcomp_la-splaytree.lo `test -f 'splaytree.c' || echo '$(srcdir)/'`splaytree.c - -+liblightcomp_la-http_resp.lo: http_resp.c -+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblightcomp_la_CFLAGS) $(CFLAGS) -MT liblightcomp_la-http_resp.lo -MD -MP -MF "$(DEPDIR)/liblightcomp_la-http_resp.Tpo" -c -o liblightcomp_la-http_resp.lo `test -f 'http_resp.c' || echo '$(srcdir)/'`http_resp.c; \ -+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liblightcomp_la-http_resp.Tpo" "$(DEPDIR)/liblightcomp_la-http_resp.Plo"; else rm -f "$(DEPDIR)/liblightcomp_la-http_resp.Tpo"; exit 1; fi -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='http_resp.c' object='liblightcomp_la-http_resp.lo' libtool=yes @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblightcomp_la_CFLAGS) $(CFLAGS) -c -o liblightcomp_la-http_resp.lo `test -f 'http_resp.c' || echo '$(srcdir)/'`http_resp.c -+ -+liblightcomp_la-http_resp_parser.lo: http_resp_parser.c -+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblightcomp_la_CFLAGS) $(CFLAGS) -MT liblightcomp_la-http_resp_parser.lo -MD -MP -MF "$(DEPDIR)/liblightcomp_la-http_resp_parser.Tpo" -c -o liblightcomp_la-http_resp_parser.lo `test -f 'http_resp_parser.c' || echo '$(srcdir)/'`http_resp_parser.c; \ -+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liblightcomp_la-http_resp_parser.Tpo" "$(DEPDIR)/liblightcomp_la-http_resp_parser.Plo"; else rm -f "$(DEPDIR)/liblightcomp_la-http_resp_parser.Tpo"; exit 1; fi -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='http_resp_parser.c' object='liblightcomp_la-http_resp_parser.lo' libtool=yes @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblightcomp_la_CFLAGS) $(CFLAGS) -c -o liblightcomp_la-http_resp_parser.lo `test -f 'http_resp_parser.c' || echo '$(srcdir)/'`http_resp_parser.c -+ - mod_cml_la-mod_cml.lo: mod_cml.c - @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mod_cml_la_CFLAGS) $(CFLAGS) -MT mod_cml_la-mod_cml.lo -MD -MP -MF "$(DEPDIR)/mod_cml_la-mod_cml.Tpo" -c -o mod_cml_la-mod_cml.lo `test -f 'mod_cml.c' || echo '$(srcdir)/'`mod_cml.c; \ - @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mod_cml_la-mod_cml.Tpo" "$(DEPDIR)/mod_cml_la-mod_cml.Plo"; else rm -f "$(DEPDIR)/mod_cml_la-mod_cml.Tpo"; exit 1; fi -@@ -1506,14 +1539,19 @@ - @CROSS_COMPILING_TRUE@mod_ssi_exprparser.c mod_ssi_exprparser.h: - @CROSS_COMPILING_FALSE@configparser.y: lemon - @CROSS_COMPILING_FALSE@mod_ssi_exprparser.y: lemon -+@CROSS_COMPILING_FALSE@http_resp_parser.y: lemon - - @CROSS_COMPILING_FALSE@configparser.c configparser.h: configparser.y - @CROSS_COMPILING_FALSE@ rm -f configparser.h --@CROSS_COMPILING_FALSE@ $(LEMON) -q $(srcdir)/configparser.y $(srcdir)/lempar.c -+@CROSS_COMPILING_FALSE@ $(LEMON) -q $(srcdir)/$< $(srcdir)/lempar.c -+ -+@CROSS_COMPILING_FALSE@http_resp_parser.c http_resp_parser.h: http_resp_parser.y -+@CROSS_COMPILING_FALSE@ rm -f http_resp_parser.h -+@CROSS_COMPILING_FALSE@ $(LEMON) -q $(srcdir)/$< $(srcdir)/lempar.c - - @CROSS_COMPILING_FALSE@mod_ssi_exprparser.c mod_ssi_exprparser.h: mod_ssi_exprparser.y - @CROSS_COMPILING_FALSE@ rm -f mod_ssi_exprparser.h --@CROSS_COMPILING_FALSE@ $(LEMON) -q $(srcdir)/mod_ssi_exprparser.y $(srcdir)/lempar.c -+@CROSS_COMPILING_FALSE@ $(LEMON) -q $(srcdir)/$< $(srcdir)/lempar.c ++ sys-files.h sys-process.h sys-strings.h http_resp_parser.h - configfile.c: configparser.h - mod_ssi_expr.c: mod_ssi_exprparser.h ---- lighttpd-1.4.11/src/array.c 2005-11-18 13:58:32.000000000 +0200 + DEFS= @DEFS@ -DLIBRARY_DIR="\"$(libdir)\"" + +@@ -267,4 +279,4 @@ + #ajp_SOURCES = ajp.c + + noinst_HEADERS = $(hdr) +-EXTRA_DIST = mod_skeleton.c configparser.y mod_ssi_exprparser.y lempar.c ++EXTRA_DIST = mod_skeleton.c configparser.y mod_ssi_exprparser.y lempar.c http_resp_parser.y +--- ../lighttpd-1.4.11/src/array.c 2005-11-18 13:58:32.000000000 +0200 +++ lighttpd-1.4.12/src/array.c 2006-07-11 22:07:51.000000000 +0300 @@ -11,12 +11,12 @@ @@ -1472,7 +1163,7 @@ return 0; } #endif ---- lighttpd-1.4.11/src/array.h 2005-09-23 21:24:18.000000000 +0300 +--- ../lighttpd-1.4.11/src/array.h 2005-09-23 21:24:18.000000000 +0300 +++ lighttpd-1.4.12/src/array.h 2006-07-11 22:07:51.000000000 +0300 @@ -16,7 +16,7 @@ #define DATA_UNSET \ @@ -1591,8 +1282,8 @@ int usage; /* fair-balancing needs the no. of connections active on this host */ int last_used_ndx; /* round robin */ } data_fastcgi; ---- lighttpd-1.4.11/src/base.h 2006-01-11 16:51:04.000000000 +0200 -+++ lighttpd-1.4.12/src/base.h 2006-07-11 22:07:51.000000000 +0300 +--- ../lighttpd-1.4.11/src/base.h 2006-01-11 16:51:04.000000000 +0200 ++++ lighttpd-1.4.12/src/base.h 2006-07-15 22:43:21.000000000 +0300 @@ -2,7 +2,6 @@ #define _BASE_H_ @@ -1629,7 +1320,7 @@ /* solaris and NetBSD 1.3.x again */ #if (!defined(HAVE_STDINT_H)) && (!defined(HAVE_INTTYPES_H)) && (!defined(uint32_t)) -# define uint32_t u_int32_t -+//# define uint32_t u_int32_t ++/* # define uint32_t u_int32_t */ +typedef unsigned __int32 uint32_t; #endif @@ -1668,7 +1359,26 @@ config_values_type_t type; config_scope_type_t scope; } config_values_t; -@@ -142,40 +137,40 @@ +@@ -118,18 +113,6 @@ + short factor; + } fcgi_connections; + +- +-typedef union { +-#ifdef HAVE_IPV6 +- struct sockaddr_in6 ipv6; +-#endif +- struct sockaddr_in ipv4; +-#ifdef HAVE_SYS_UN_H +- struct sockaddr_un un; +-#endif +- struct sockaddr plain; +-} sock_addr; +- + /* fcgi_response_header contains ... */ + #define HTTP_STATUS BV(0) + #define HTTP_CONNECTION BV(1) +@@ -142,40 +125,40 @@ /* the request-line */ buffer *request; buffer *uri; @@ -1721,7 +1431,7 @@ HTTP_TRANSFER_ENCODING_IDENTITY, HTTP_TRANSFER_ENCODING_CHUNKED } transfer_encoding; } response; -@@ -191,21 +186,21 @@ +@@ -191,21 +174,21 @@ typedef struct { buffer *path; buffer *basedir; /* path = "(basedir)(.*)" */ @@ -1748,7 +1458,7 @@ #ifdef HAVE_FAM_H int dir_version; int dir_ndx; -@@ -215,8 +210,8 @@ +@@ -215,8 +198,8 @@ } stat_cache_entry; typedef struct { @@ -1759,7 +1469,7 @@ buffer *dir_name; /* for building the dirname from the filename */ #ifdef HAVE_FAM_H splay_tree *dirs; /* the nodes of the tree are fam_dir_entry */ -@@ -228,7 +223,7 @@ +@@ -228,7 +211,7 @@ typedef struct { array *mimetypes; @@ -1768,7 +1478,7 @@ /* virtual-servers */ buffer *document_root; buffer *server_name; -@@ -236,7 +231,7 @@ +@@ -236,7 +219,7 @@ buffer *server_tag; buffer *dirlist_encoding; buffer *errorfile_prefix; @@ -1777,7 +1487,7 @@ unsigned short max_keep_alive_requests; unsigned short max_keep_alive_idle; unsigned short max_read_idle; -@@ -244,16 +239,17 @@ +@@ -244,16 +227,17 @@ unsigned short use_xattr; unsigned short follow_symlink; unsigned short range_requests; @@ -1799,7 +1509,7 @@ /* server wide */ buffer *ssl_pemfile; buffer *ssl_ca_file; -@@ -268,22 +264,22 @@ +@@ -268,22 +252,22 @@ /* configside */ unsigned short global_kbytes_per_second; /* */ @@ -1828,7 +1538,7 @@ #ifdef USE_OPENSSL SSL_CTX *ssl_ctx; #endif -@@ -291,18 +287,18 @@ +@@ -291,18 +275,18 @@ /* the order of the items should be the same as they are processed * read before write as we use this later */ @@ -1859,7 +1569,7 @@ } connection_state_t; typedef enum { COND_RESULT_UNSET, COND_RESULT_FALSE, COND_RESULT_TRUE } cond_result_t; -@@ -315,88 +311,88 @@ +@@ -315,88 +299,88 @@ typedef struct { connection_state_t state; @@ -1976,7 +1686,7 @@ #ifdef USE_OPENSSL SSL *ssl; #endif -@@ -439,39 +435,48 @@ +@@ -439,39 +423,48 @@ size_t size; } buffer_plugin; @@ -2037,7 +1747,7 @@ } stat_cache_engine; unsigned short enable_cores; } server_config; -@@ -480,14 +485,14 @@ +@@ -480,14 +473,14 @@ sock_addr addr; int fd; int fde_ndx; @@ -2055,7 +1765,7 @@ #ifdef USE_OPENSSL SSL_CTX *ssl_ctx; #endif -@@ -495,37 +500,37 @@ +@@ -495,37 +488,37 @@ typedef struct { server_socket **ptr; @@ -2101,7 +1811,7 @@ size_t max_conns; /* buffers */ -@@ -533,13 +538,13 @@ +@@ -533,13 +526,13 @@ buffer *response_header; buffer *response_range; buffer *tmp_buf; @@ -2118,7 +1828,7 @@ /* caches */ #ifdef HAVE_IPV6 inet_ntop_cache_type inet_ntop_cache[INET_NTOP_CACHE_MAX]; -@@ -547,31 +552,31 @@ +@@ -547,31 +540,31 @@ mtime_cache_type mtime_cache[FILE_CACHE_MAX]; array *split_vals; @@ -2158,7 +1868,7 @@ stat_cache *stat_cache; /** -@@ -588,18 +593,20 @@ +@@ -588,18 +581,20 @@ * fastcgi.backend..disconnects = ... */ array *status; @@ -2184,7 +1894,7 @@ } server; ---- lighttpd-1.4.11/src/buffer.c 2006-01-13 00:00:45.000000000 +0200 +--- ../lighttpd-1.4.11/src/buffer.c 2006-01-13 00:00:45.000000000 +0200 +++ lighttpd-1.4.12/src/buffer.c 2006-07-11 22:07:52.000000000 +0300 @@ -12,20 +12,20 @@ @@ -2933,7 +2643,7 @@ + return 0; } ---- lighttpd-1.4.11/src/buffer.h 2006-01-13 00:00:45.000000000 +0200 +--- ../lighttpd-1.4.11/src/buffer.h 2006-01-13 00:00:45.000000000 +0200 +++ lighttpd-1.4.12/src/buffer.h 2006-07-11 22:07:52.000000000 +0300 @@ -12,27 +12,44 @@ @@ -3034,7 +2744,7 @@ #define SEGFAULT() do { fprintf(stderr, "%s.%d: aborted\n", __FILE__, __LINE__); abort(); } while(0) #define UNUSED(x) ( (void)(x) ) ---- lighttpd-1.4.11/src/chunk.c 2005-11-18 15:18:19.000000000 +0200 +--- ../lighttpd-1.4.11/src/chunk.c 2005-11-18 15:18:19.000000000 +0200 +++ lighttpd-1.4.12/src/chunk.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,16 +1,14 @@ /** @@ -3409,7 +3119,7 @@ break; } ---- lighttpd-1.4.11/src/chunk.h 2005-11-01 09:32:21.000000000 +0200 +--- ../lighttpd-1.4.11/src/chunk.h 2005-11-01 09:32:21.000000000 +0200 +++ lighttpd-1.4.12/src/chunk.h 2006-07-11 22:07:51.000000000 +0300 @@ -6,7 +6,7 @@ @@ -3457,7 +3167,7 @@ chunk *unused; size_t unused_chunks; ---- lighttpd-1.4.11/src/configfile-glue.c 2006-03-03 20:14:56.000000000 +0200 +--- ../lighttpd-1.4.11/src/configfile-glue.c 2006-03-03 20:14:56.000000000 +0200 +++ lighttpd-1.4.12/src/configfile-glue.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,4 +1,5 @@ #include @@ -3944,8 +3654,8 @@ +#endif +} + ---- lighttpd-1.4.11/src/configfile.c 2006-02-15 14:26:42.000000000 +0200 -+++ lighttpd-1.4.12/src/configfile.c 2006-07-11 22:07:51.000000000 +0300 +--- ../lighttpd-1.4.11/src/configfile.c 2006-02-15 14:26:42.000000000 +0200 ++++ lighttpd-1.4.12/src/configfile.c 2006-07-15 22:43:21.000000000 +0300 @@ -2,7 +2,6 @@ #include @@ -3954,7 +3664,7 @@ #include #include #include -@@ -13,21 +12,23 @@ +@@ -13,21 +12,24 @@ #include "log.h" #include "stream.h" #include "plugin.h" @@ -3967,6 +3677,7 @@ #include "proc_open.h" +#include "sys-files.h" ++#include "sys-process.h" + +#ifndef PATH_MAX +/* win32 */ @@ -3984,7 +3695,7 @@ { "server.bind", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 0 */ { "server.errorlog", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 1 */ { "server.errorfile-prefix", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 2 */ -@@ -38,7 +39,7 @@ +@@ -38,7 +40,7 @@ { "server.tag", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 7 */ { "server.use-ipv6", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 8 */ { "server.modules", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_SERVER }, /* 9 */ @@ -3993,7 +3704,7 @@ { "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 */ -@@ -49,7 +50,7 @@ +@@ -49,7 +51,7 @@ { "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 */ @@ -4002,7 +3713,7 @@ { "server.max-read-idle", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 20 */ { "server.max-write-idle", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 21 */ { "server.error-handler-404", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 22 */ -@@ -60,19 +61,19 @@ +@@ -60,19 +62,19 @@ { "mimetype.use-xattr", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 27 */ { "mimetype.assign", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 28 */ { "ssl.pemfile", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 29 */ @@ -4026,7 +3737,7 @@ { "server.errorlog-use-syslog", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 39 */ { "server.range-requests", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 40 */ { "server.stat-cache-engine", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 41 */ -@@ -80,7 +81,8 @@ +@@ -80,7 +82,8 @@ { "server.network-backend", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 43 */ { "server.upload-dirs", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 44 */ { "server.core-files", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 45 */ @@ -4036,7 +3747,7 @@ { "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 }, -@@ -90,11 +92,11 @@ +@@ -90,11 +93,11 @@ { "server.groupid", "use server.groupname instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET }, { "server.use-keep-alive", "use server.max-keep-alive-requests = 0 instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET }, { "server.force-lower-case-files", "use server.force-lowercase-filenames instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET }, @@ -4050,7 +3761,7 @@ /* 0 */ cv[0].destination = srv->srvconf.bindhost; cv[1].destination = srv->srvconf.errorlog_file; -@@ -102,33 +104,33 @@ +@@ -102,33 +105,33 @@ cv[4].destination = srv->srvconf.username; cv[5].destination = srv->srvconf.groupname; cv[6].destination = &(srv->srvconf.port); @@ -4091,7 +3802,7 @@ s = calloc(1, sizeof(specific_config)); assert(s); s->document_root = buffer_init(); -@@ -154,17 +156,18 @@ +@@ -154,17 +157,18 @@ s->global_kbytes_per_second = 0; s->global_bytes_per_second_cnt = 0; s->global_bytes_per_second_cnt_ptr = &s->global_bytes_per_second_cnt; @@ -4114,7 +3825,7 @@ cv[17].destination = &(s->max_keep_alive_requests); cv[18].destination = s->server_name; cv[19].destination = &(s->max_keep_alive_idle); -@@ -179,23 +182,23 @@ +@@ -179,23 +183,23 @@ cv[28].destination = s->mimetypes; cv[29].destination = s->ssl_pemfile; cv[30].destination = &(s->is_ssl); @@ -4143,7 +3854,7 @@ if (buffer_is_empty(stat_cache_string)) { srv->srvconf.stat_cache_engine = STAT_CACHE_ENGINE_SIMPLE; } else if (buffer_is_equal_string(stat_cache_string, CONST_STR_LEN("simple"))) { -@@ -205,22 +208,22 @@ +@@ -205,22 +209,22 @@ } else if (buffer_is_equal_string(stat_cache_string, CONST_STR_LEN("disable"))) { srv->srvconf.stat_cache_engine = STAT_CACHE_ENGINE_NONE; } else { @@ -4173,7 +3884,7 @@ PATCH(allow_http11); PATCH(mimetypes); PATCH(document_root); -@@ -236,20 +239,21 @@ +@@ -236,20 +240,21 @@ PATCH(kbytes_per_second); PATCH(global_kbytes_per_second); PATCH(global_bytes_per_second_cnt); @@ -4199,7 +3910,7 @@ PATCH(ssl_pemfile); PATCH(ssl_ca_file); return 0; -@@ -257,22 +261,22 @@ +@@ -257,22 +262,22 @@ int config_patch_connection(server *srv, connection *con, comp_key_t comp) { size_t i, j; @@ -4227,7 +3938,7 @@ if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.document-root"))) { PATCH(document_root); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.range-requests"))) { -@@ -315,11 +319,13 @@ +@@ -315,11 +320,13 @@ PATCH(log_response_header); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("debug.log-condition-handling"))) { PATCH(log_condition_handling); @@ -4242,7 +3953,7 @@ PATCH(force_lowercase_filenames); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("server.kbytes-per-second"))) { PATCH(global_kbytes_per_second); -@@ -328,7 +334,7 @@ +@@ -328,7 +335,7 @@ } } } @@ -4251,7 +3962,7 @@ return 0; } #undef PATCH -@@ -336,15 +342,15 @@ +@@ -336,15 +343,15 @@ typedef struct { int foo; int bar; @@ -4270,7 +3981,7 @@ int in_key; int in_brace; int in_cond; -@@ -362,7 +368,7 @@ +@@ -362,7 +369,7 @@ } if (0 != stream_open(&(t->s), t->file)) { @@ -4279,7 +3990,7 @@ "opening configfile ", t->file, "failed:", strerror(errno)); buffer_free(t->file); return -1; -@@ -373,7 +379,7 @@ +@@ -373,7 +380,7 @@ t->size = t->s.size; t->line = 1; t->line_pos = 1; @@ -4288,7 +3999,7 @@ t->in_key = 1; t->in_brace = 0; t->in_cond = 0; -@@ -401,7 +407,7 @@ +@@ -401,7 +408,7 @@ static int config_skip_comment(tokenizer_t *t) { int i; assert(t->input[t->offset] == '#'); @@ -4297,7 +4008,7 @@ (t->input[t->offset + i] != '\n' && t->input[t->offset + i] != '\r'); i++); t->offset += i; -@@ -411,44 +417,44 @@ +@@ -411,44 +418,44 @@ static int config_tokenizer(server *srv, tokenizer_t *t, int *token_id, buffer *token) { int tid = 0; size_t i; @@ -4355,7 +4066,7 @@ "only =~ and == are allowed in the condition"); return -1; } -@@ -456,51 +462,51 @@ +@@ -456,51 +463,51 @@ t->in_cond = 0; } else if (t->in_key) { tid = TK_ASSIGN; @@ -4422,7 +4133,7 @@ break; case '\t': case ' ': -@@ -546,10 +552,10 @@ +@@ -546,10 +553,10 @@ case ',': if (t->in_brace > 0) { tid = TK_COMMA; @@ -4435,7 +4146,7 @@ t->offset++; t->line_pos++; break; -@@ -557,70 +563,70 @@ +@@ -557,70 +564,70 @@ /* search for the terminating " */ start = t->input + t->offset + 1; buffer_copy_string(token, ""); @@ -4527,7 +4238,7 @@ break; case '+': -@@ -637,96 +643,88 @@ +@@ -637,96 +644,88 @@ case '{': t->offset++; @@ -4652,7 +4363,7 @@ if (strcmp(token->ptr, "include") == 0) { tid = TK_INCLUDE; } else if (strcmp(token->ptr, "include_shell") == 0) { -@@ -738,14 +736,14 @@ +@@ -738,14 +737,14 @@ } else { tid = TK_LKEY; } @@ -4670,7 +4381,7 @@ "invalid character in variable name"); return -1; } -@@ -753,16 +751,16 @@ +@@ -753,16 +752,16 @@ break; } } @@ -4690,7 +4401,7 @@ return 1; } else if (t->offset < t->size) { fprintf(stderr, "%s.%d: %d, %s\n", -@@ -781,10 +779,11 @@ +@@ -781,10 +780,11 @@ pParser = configparserAlloc( malloc ); lasttoken = buffer_init(); token = buffer_init(); @@ -4703,7 +4414,7 @@ token = buffer_init(); } buffer_free(token); -@@ -797,14 +796,14 @@ +@@ -797,14 +797,14 @@ } } configparserFree(pParser, free); @@ -4722,7 +4433,7 @@ "parser failed somehow near here:", lasttoken); ret = -1; } -@@ -821,7 +820,7 @@ +@@ -821,7 +821,7 @@ t->offset = 0; t->line = 1; t->line_pos = 1; @@ -4731,7 +4442,7 @@ t->in_key = 1; t->in_brace = 0; t->in_cond = 0; -@@ -844,7 +843,7 @@ +@@ -844,7 +844,7 @@ } if (0 != stream_open(&s, filename)) { @@ -4740,7 +4451,7 @@ "opening configfile ", filename, "failed:", strerror(errno)); ret = -1; } else { -@@ -866,7 +865,7 @@ +@@ -866,7 +866,7 @@ char oldpwd[PATH_MAX]; if (NULL == getcwd(oldpwd, sizeof(oldpwd))) { @@ -4749,7 +4460,7 @@ "cannot get cwd", strerror(errno)); return -1; } -@@ -879,7 +878,7 @@ +@@ -879,7 +879,7 @@ } if (0 != proc_open_buffer(&proc, cmd, NULL, out, NULL)) { @@ -4758,7 +4469,7 @@ "opening", source, "failed:", strerror(errno)); ret = -1; } else { -@@ -896,13 +895,12 @@ +@@ -896,13 +896,12 @@ static void context_init(server *srv, config_t *context) { context->srv = srv; context->ok = 1; @@ -4774,7 +4485,7 @@ buffer_free(context->basedir); } -@@ -918,18 +916,15 @@ +@@ -918,18 +917,15 @@ context_init(srv, &context); context.all_configs = srv->config_context; @@ -4798,12 +4509,8 @@ dc = data_config_init(); buffer_copy_string(dc->key, "global"); -@@ -941,10 +936,10 @@ - /* default context */ - srv->config = dc->value; - dpid = data_integer_init(); -- dpid->value = getpid(); -+ dpid->value = /* getpid() */0; +@@ -944,7 +940,7 @@ + dpid->value = getpid(); buffer_copy_string(dpid->key, "var.PID"); array_insert_unique(srv->config, (data_unset *)dpid); - @@ -4811,7 +4518,7 @@ dcwd = data_string_init(); buffer_prepare_copy(dcwd->value, 1024); if (NULL != getcwd(dcwd->value->ptr, dcwd->value->size - 1)) { -@@ -968,7 +963,7 @@ +@@ -968,7 +964,7 @@ } else { return -1; } @@ -4820,7 +4527,7 @@ if (NULL != (modules = (data_array *)array_get_element(srv->config, "server.modules"))) { data_string *ds; data_array *prepends; -@@ -1026,22 +1021,23 @@ +@@ -1026,22 +1022,23 @@ buffer_copy_string(modules->key, "server.modules"); array_insert_unique(srv->config, (data_unset *)modules); } @@ -4849,7 +4556,7 @@ /* - poll is most reliable * - select works everywhere * - linux-* are experimental -@@ -1067,20 +1063,21 @@ +@@ -1067,20 +1064,21 @@ #endif { FDEVENT_HANDLER_UNSET, NULL } }; @@ -4882,7 +4589,7 @@ return -1; } -@@ -1088,18 +1085,18 @@ +@@ -1088,18 +1086,18 @@ buffer_copy_string_buffer(srv->tmp_buf, srv->srvconf.changeroot); buffer_append_string_buffer(srv->tmp_buf, s->document_root); @@ -4908,7 +4615,7 @@ if (0 == stat(srv->tmp_buf->ptr, &st1)) { int is_lower = 0; -@@ -1107,68 +1104,68 @@ +@@ -1107,68 +1105,68 @@ is_lower = buffer_is_equal(srv->tmp_buf, s->document_root); /* lower-case existed, check upper-case */ @@ -5005,7 +4712,7 @@ return -1; } } -@@ -1176,19 +1173,19 @@ +@@ -1176,19 +1174,19 @@ if (s->is_ssl) { if (buffer_is_empty(s->ssl_pemfile)) { /* PEM file is require */ @@ -5031,7 +4738,7 @@ + return 0; } ---- lighttpd-1.4.11/src/configfile.h 2005-08-23 17:36:12.000000000 +0300 +--- ../lighttpd-1.4.11/src/configfile.h 2005-08-23 17:36:12.000000000 +0300 +++ lighttpd-1.4.12/src/configfile.h 2006-07-11 22:07:51.000000000 +0300 @@ -9,7 +9,7 @@ server *srv; @@ -5042,7 +4749,7 @@ data_config *current; /* current started with { */ buffer *basedir; } config_t; ---- lighttpd-1.4.11/src/configparser.c 2006-02-01 19:51:15.000000000 +0200 +--- ../lighttpd-1.4.11/src/configparser.c 2006-02-01 19:51:15.000000000 +0200 +++ lighttpd-1.4.12/src/configparser.c 2006-07-11 22:08:02.000000000 +0300 @@ -24,52 +24,34 @@ dc->parent = ctx->current; @@ -5973,7 +5680,7 @@ ** ** This is what we do if the grammar does define ERROR: ** ---- lighttpd-1.4.11/src/configparser.y 2006-01-26 18:46:25.000000000 +0200 +--- ../lighttpd-1.4.11/src/configparser.y 2006-01-26 18:46:25.000000000 +0200 +++ lighttpd-1.4.12/src/configparser.y 2006-07-11 22:07:53.000000000 +0300 @@ -21,52 +21,34 @@ dc->parent = ctx->current; @@ -6138,7 +5845,7 @@ array(A) ::= LPARAN aelements(B) RPARAN. { A = B; B = NULL; ---- lighttpd-1.4.11/src/connections-glue.c 2005-09-12 10:04:23.000000000 +0300 +--- ../lighttpd-1.4.11/src/connections-glue.c 2005-09-12 10:04:23.000000000 +0300 +++ lighttpd-1.4.12/src/connections-glue.c 2006-07-11 22:07:51.000000000 +0300 @@ -13,7 +13,7 @@ case CON_STATE_REQUEST_END: return "req-end"; @@ -6168,8 +5875,8 @@ return 0; } ---- lighttpd-1.4.11/src/connections.c 2006-03-05 22:14:53.000000000 +0200 -+++ lighttpd-1.4.12/src/connections.c 2006-07-11 22:07:51.000000000 +0300 +--- ../lighttpd-1.4.11/src/connections.c 2006-03-05 22:14:53.000000000 +0200 ++++ lighttpd-1.4.12/src/connections.c 2006-07-15 22:43:21.000000000 +0300 @@ -2,7 +2,6 @@ #include @@ -6189,15 +5896,17 @@ #endif #ifdef HAVE_SYS_FILIO_H -@@ -35,6 +34,7 @@ +@@ -35,15 +34,16 @@ #endif #include "sys-socket.h" +#include "sys-files.h" typedef struct { - PLUGIN_DATA; -@@ -43,7 +43,7 @@ +- PLUGIN_DATA; ++ PLUGIN_DATA; + } plugin_data; + static connection *connections_get_new_connection(server *srv) { connections *conns = srv->conns; size_t i; @@ -6396,7 +6105,7 @@ - return -1; - } - buffer_prepare_copy(b, toread); -+ oldlen = chunkqueue_length(con->read_queue); ++ oldlen = chunkqueue_length(con->read_queue); - len = read(con->fd, b->ptr, b->size - 1); - } @@ -6415,7 +6124,21 @@ -#endif - - if (len < 0) { -- con->is_readable = 0; ++ switch(network_read_chunkqueue(srv, con, con->read_queue)) { ++ case NETWORK_STATUS_SUCCESS: ++ break; ++ case NETWORK_STATUS_WAIT_FOR_EVENT: ++ con->is_readable = 0; ++ return NETWORK_STATUS_WAIT_FOR_EVENT; ++ case NETWORK_STATUS_INTERRUPTED: ++ con->is_readable = 1; ++ return NETWORK_STATUS_WAIT_FOR_EVENT; ++ case NETWORK_STATUS_CONNECTION_CLOSE: ++ /* pipelining */ ++ con->is_readable = 0; ++ return NETWORK_STATUS_CONNECTION_CLOSE; ++ case NETWORK_STATUS_FATAL_ERROR: + con->is_readable = 0; - -#ifdef USE_OPENSSL - if (srv_sock->is_ssl) { @@ -6442,28 +6165,6 @@ - log_error_write(srv, __FILE__, __LINE__, "sds", "SSL:", - r, ERR_error_string(ssl_err, NULL)); - } -+ switch(network_read_chunkqueue(srv, con, con->read_queue)) { -+ case NETWORK_STATUS_SUCCESS: -+ break; -+ case NETWORK_STATUS_WAIT_FOR_EVENT: -+ con->is_readable = 0; -+ return NETWORK_STATUS_WAIT_FOR_EVENT; -+ case NETWORK_STATUS_INTERRUPTED: -+ con->is_readable = 1; -+ return NETWORK_STATUS_WAIT_FOR_EVENT; -+ case NETWORK_STATUS_CONNECTION_CLOSE: -+ /* pipelining */ -+ con->is_readable = 0; -+ return NETWORK_STATUS_CONNECTION_CLOSE; -+ case NETWORK_STATUS_FATAL_ERROR: -+ con->is_readable = 0; -+ -+ connection_set_state(srv, con, CON_STATE_ERROR); -+ return NETWORK_STATUS_FATAL_ERROR; -+ default: -+ SEGFAULT(); -+ break; -+ } - switch(errno) { - default: @@ -6516,15 +6217,21 @@ - log_error_write(srv, __FILE__, __LINE__, "ssd", "connection closed - read failed: ", strerror(errno), errno); - } -#endif -- connection_set_state(srv, con, CON_STATE_ERROR); + connection_set_state(srv, con, CON_STATE_ERROR); - - return -1; - } else if (len == 0) { - con->is_readable = 0; - /* the other end close the connection -> KEEP-ALIVE */ -- ++ return NETWORK_STATUS_FATAL_ERROR; ++ default: ++ SEGFAULT(); ++ break; ++ } + - /* pipelining */ -- ++ newlen = chunkqueue_length(con->read_queue); + - return -2; - } else if ((size_t)len < b->size - 1) { - /* we got less then expected, wait for the next fd-event */ @@ -6541,8 +6248,6 @@ -#endif - - return 0; -+ newlen = chunkqueue_length(con->read_queue); -+ + con->bytes_read += (newlen - oldlen); + + return NETWORK_STATUS_SUCCESS; @@ -6754,9 +6459,8 @@ } static int connection_handle_write(server *srv, connection *con) { -- switch(network_write_chunkqueue(srv, con, con->write_queue)) { + switch(network_write_chunkqueue(srv, con, con->write_queue)) { - case 0: -+ switch(network_write_chunkqueue(srv, con, con->write_queue)) { + case NETWORK_STATUS_SUCCESS: if (con->file_finished) { connection_set_state(srv, con, CON_STATE_RESPONSE_END); @@ -7144,13 +6848,13 @@ if (cq->first == cq->last && - cq->first->mem->used == 0) { -+ (NULL == cq->first || ++ (NULL == cq->first || + cq->first->mem->used == 0)) { /* conn-closed, leave here */ connection_set_state(srv, con, CON_STATE_ERROR); + -+ return 0; ++ return 0; } default: break; @@ -7498,10 +7202,10 @@ if (-1 == (cnt = accept(srv_socket->fd, (struct sockaddr *) &cnt_addr, &cnt_len))) { +#ifdef _WIN32 -+ errno = WSAGetLastError(); ++ errno = WSAGetLastError(); +#endif if ((errno != EAGAIN) && -+ (errno != EWOULDBLOCK) && ++ (errno != EWOULDBLOCK) && (errno != EINTR)) { - log_error_write(srv, __FILE__, __LINE__, "ssd", "accept failed:", strerror(errno), errno); + log_error_write(srv, __FILE__, __LINE__, "ssd", "accept failed:", strerror(errno), srv_socket->fd); @@ -8039,7 +7743,7 @@ (con->is_writable == 0) && (con->traffic_limit_reached == 0)) { fdevent_event_add(srv->ev, &(con->fde_ndx), con->fd, FDEVENT_OUT); ---- lighttpd-1.4.11/src/crc32.h 2005-09-30 20:18:59.000000000 +0300 +--- ../lighttpd-1.4.11/src/crc32.h 2005-09-30 20:18:59.000000000 +0300 +++ lighttpd-1.4.12/src/crc32.h 2006-07-11 22:07:53.000000000 +0300 @@ -6,6 +6,7 @@ #endif @@ -8060,7 +7764,7 @@ uint32_t generate_crc32c(char *string, size_t length); #endif ---- lighttpd-1.4.11/src/data_array.c 2005-08-23 17:36:12.000000000 +0300 +--- ../lighttpd-1.4.11/src/data_array.c 2005-08-23 17:36:12.000000000 +0300 +++ lighttpd-1.4.12/src/data_array.c 2006-07-11 22:07:52.000000000 +0300 @@ -17,16 +17,16 @@ @@ -8114,7 +7818,7 @@ + return ds; } ---- lighttpd-1.4.11/src/data_config.c 2005-08-17 12:53:19.000000000 +0300 +--- ../lighttpd-1.4.11/src/data_config.c 2005-08-17 12:53:19.000000000 +0300 +++ lighttpd-1.4.12/src/data_config.c 2006-07-11 22:07:51.000000000 +0300 @@ -17,26 +17,26 @@ @@ -8196,7 +7900,7 @@ + return ds; } ---- lighttpd-1.4.11/src/data_count.c 2005-08-23 17:36:12.000000000 +0300 +--- ../lighttpd-1.4.11/src/data_count.c 2005-08-23 17:36:12.000000000 +0300 +++ lighttpd-1.4.12/src/data_count.c 2006-07-11 22:07:51.000000000 +0300 @@ -16,53 +16,53 @@ @@ -8264,7 +7968,7 @@ + return ds; } ---- lighttpd-1.4.11/src/data_fastcgi.c 2005-08-23 17:36:12.000000000 +0300 +--- ../lighttpd-1.4.11/src/data_fastcgi.c 2005-08-23 17:36:12.000000000 +0300 +++ lighttpd-1.4.12/src/data_fastcgi.c 2006-07-11 22:07:53.000000000 +0300 @@ -17,53 +17,53 @@ @@ -8330,7 +8034,7 @@ + return ds; } ---- lighttpd-1.4.11/src/data_integer.c 2005-08-23 17:36:12.000000000 +0300 +--- ../lighttpd-1.4.11/src/data_integer.c 2005-08-23 17:36:12.000000000 +0300 +++ lighttpd-1.4.12/src/data_integer.c 2006-07-11 22:07:51.000000000 +0300 @@ -16,15 +16,15 @@ @@ -8386,7 +8090,7 @@ + return ds; } ---- lighttpd-1.4.11/src/data_string.c 2005-08-23 17:36:12.000000000 +0300 +--- ../lighttpd-1.4.11/src/data_string.c 2005-08-23 17:36:12.000000000 +0300 +++ lighttpd-1.4.12/src/data_string.c 2006-07-11 22:07:53.000000000 +0300 @@ -17,16 +17,16 @@ @@ -8483,7 +8187,7 @@ + return ds; } ---- lighttpd-1.4.11/src/etag.c 2005-08-11 01:26:40.000000000 +0300 +--- ../lighttpd-1.4.11/src/etag.c 2005-08-11 01:26:40.000000000 +0300 +++ lighttpd-1.4.12/src/etag.c 2006-07-11 22:07:51.000000000 +0300 @@ -14,19 +14,19 @@ buffer_append_off_t(etag, st->st_size); @@ -8509,7 +8213,7 @@ + return 0; } ---- lighttpd-1.4.11/src/etag.h 2005-08-11 01:26:40.000000000 +0300 +--- ../lighttpd-1.4.11/src/etag.h 2005-08-11 01:26:40.000000000 +0300 +++ lighttpd-1.4.12/src/etag.h 2006-07-11 22:07:51.000000000 +0300 @@ -3,13 +3,12 @@ @@ -8526,7 +8230,7 @@ + #endif ---- lighttpd-1.4.11/src/fastcgi.h 2005-08-11 01:26:40.000000000 +0300 +--- ../lighttpd-1.4.11/src/fastcgi.h 2005-08-11 01:26:40.000000000 +0300 +++ lighttpd-1.4.12/src/fastcgi.h 2006-07-11 22:07:51.000000000 +0300 @@ -1,4 +1,4 @@ -/* @@ -8543,7 +8247,7 @@ unsigned char reserved[7]; } FCGI_UnknownTypeBody; ---- lighttpd-1.4.11/src/fdevent.c 2005-11-15 10:51:05.000000000 +0200 +--- ../lighttpd-1.4.11/src/fdevent.c 2005-11-15 10:51:05.000000000 +0200 +++ lighttpd-1.4.12/src/fdevent.c 2006-07-11 22:07:53.000000000 +0300 @@ -2,7 +2,6 @@ @@ -8771,7 +8475,7 @@ return -1; } ---- lighttpd-1.4.11/src/fdevent.h 2005-09-27 11:26:33.000000000 +0300 +--- ../lighttpd-1.4.11/src/fdevent.h 2005-09-27 11:26:33.000000000 +0300 +++ lighttpd-1.4.12/src/fdevent.h 2006-07-11 22:07:51.000000000 +0300 @@ -17,13 +17,13 @@ # include @@ -8929,7 +8633,7 @@ int (*fcntl_set)(struct fdevents *ev, int fd); } fdevents; ---- lighttpd-1.4.11/src/fdevent_freebsd_kqueue.c 2005-09-01 10:46:24.000000000 +0300 +--- ../lighttpd-1.4.11/src/fdevent_freebsd_kqueue.c 2005-09-01 10:46:24.000000000 +0300 +++ lighttpd-1.4.12/src/fdevent_freebsd_kqueue.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,6 +1,5 @@ #include @@ -8996,8 +8700,8 @@ return -1; } ---- lighttpd-1.4.11/src/fdevent_linux_rtsig.c 2005-11-21 19:56:11.000000000 +0200 -+++ lighttpd-1.4.12/src/fdevent_linux_rtsig.c 2006-07-11 22:07:53.000000000 +0300 +--- ../lighttpd-1.4.11/src/fdevent_linux_rtsig.c 2005-11-21 19:56:11.000000000 +0200 ++++ lighttpd-1.4.12/src/fdevent_linux_rtsig.c 2006-07-15 22:43:21.000000000 +0300 @@ -1,6 +1,5 @@ #include @@ -9005,7 +8709,15 @@ #include #include #include -@@ -26,19 +25,19 @@ +@@ -14,6 +13,7 @@ + #include "fdevent.h" + #include "settings.h" + #include "buffer.h" ++#include "sys-process.h" + + #ifdef USE_LINUX_SIGIO + static void fdevent_linux_rtsig_free(fdevents *ev) { +@@ -26,19 +26,19 @@ static int fdevent_linux_rtsig_event_del(fdevents *ev, int fde_ndx, int fd) { if (fde_ndx < 0) return -1; @@ -9029,7 +8741,7 @@ if (ev->unused.size == 0) { ev->unused.size = 16; ev->unused.ptr = malloc(sizeof(*(ev->unused.ptr)) * ev->unused.size); -@@ -46,29 +45,29 @@ +@@ -46,29 +46,29 @@ ev->unused.size += 16; ev->unused.ptr = realloc(ev->unused.ptr, sizeof(*(ev->unused.ptr)) * ev->unused.size); } @@ -9066,7 +8778,7 @@ return 0; } #endif -@@ -78,21 +77,21 @@ +@@ -78,21 +78,21 @@ if (fde_ndx != -1) { if (ev->pollfds[fde_ndx].fd == fd) { ev->pollfds[fde_ndx].events = events; @@ -9092,7 +8804,7 @@ return k; } else { if (ev->size == 0) { -@@ -102,12 +101,12 @@ +@@ -102,12 +102,12 @@ ev->size += 16; ev->pollfds = realloc(ev->pollfds, sizeof(*ev->pollfds) * ev->size); } @@ -9107,7 +8819,7 @@ return ev->used++; } } -@@ -115,20 +114,20 @@ +@@ -115,20 +115,20 @@ static int fdevent_linux_rtsig_poll(fdevents *ev, int timeout_ms) { struct timespec ts; int r; @@ -9134,7 +8846,7 @@ } else if (r == SIGIO) { struct sigaction act; -@@ -140,7 +139,7 @@ +@@ -140,7 +140,7 @@ /* re-enable the signal queue */ act.sa_handler = SIG_DFL; sigaction(ev->signum, &act, NULL); @@ -9143,7 +8855,7 @@ ev->in_sigio = 0; r = poll(ev->pollfds, ev->used, timeout_ms); -@@ -162,12 +161,12 @@ +@@ -162,12 +162,12 @@ if (ev->siginfo.si_band == POLLERR) { fprintf(stderr, "event: %d %02lx %02x %s\n", ev->siginfo.si_fd, ev->siginfo.si_band, errno, strerror(errno)); } @@ -9158,7 +8870,7 @@ return ev->siginfo.si_band & 0x3f; } else { if (ndx >= ev->used) { -@@ -188,13 +187,13 @@ +@@ -188,13 +188,13 @@ static int fdevent_linux_rtsig_fcntl_set(fdevents *ev, int fd) { static pid_t pid = 0; @@ -9176,7 +8888,7 @@ return fcntl(fd, F_SETFL, O_ASYNC | O_NONBLOCK | O_RDWR); } -@@ -205,12 +204,12 @@ +@@ -205,12 +205,12 @@ return -1; } else { size_t i; @@ -9191,7 +8903,7 @@ return i; } } -@@ -219,34 +218,34 @@ +@@ -219,34 +219,34 @@ ev->type = FDEVENT_HANDLER_LINUX_RTSIG; #define SET(x) \ ev->x = fdevent_linux_rtsig_##x; @@ -9234,7 +8946,7 @@ return 0; } #else ---- lighttpd-1.4.11/src/fdevent_linux_sysepoll.c 2005-09-30 20:29:27.000000000 +0300 +--- ../lighttpd-1.4.11/src/fdevent_linux_sysepoll.c 2005-09-30 20:29:27.000000000 +0300 +++ lighttpd-1.4.12/src/fdevent_linux_sysepoll.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,6 +1,5 @@ #include @@ -9397,7 +9109,7 @@ return -1; } #endif ---- lighttpd-1.4.11/src/fdevent_poll.c 2005-11-18 13:59:16.000000000 +0200 +--- ../lighttpd-1.4.11/src/fdevent_poll.c 2005-11-18 13:59:16.000000000 +0200 +++ lighttpd-1.4.12/src/fdevent_poll.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,6 +1,5 @@ #include @@ -9563,7 +9275,7 @@ return 0; } ---- lighttpd-1.4.11/src/fdevent_select.c 2005-08-31 11:12:46.000000000 +0300 +--- ../lighttpd-1.4.11/src/fdevent_select.c 2005-08-31 11:12:46.000000000 +0300 +++ lighttpd-1.4.12/src/fdevent_select.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,18 +1,19 @@ -#include @@ -9682,7 +9394,7 @@ return 0; } ---- lighttpd-1.4.11/src/fdevent_solaris_devpoll.c 2005-09-01 10:45:26.000000000 +0300 +--- ../lighttpd-1.4.11/src/fdevent_solaris_devpoll.c 2005-09-01 10:45:26.000000000 +0300 +++ lighttpd-1.4.12/src/fdevent_solaris_devpoll.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,6 +1,5 @@ #include @@ -9813,7 +9525,7 @@ return -1; } #endif ---- lighttpd-1.4.11/src/http-header-glue.c 2006-02-08 15:31:36.000000000 +0200 +--- ../lighttpd-1.4.11/src/http-header-glue.c 2006-02-08 15:31:36.000000000 +0200 +++ lighttpd-1.4.12/src/http-header-glue.c 2006-07-11 22:07:53.000000000 +0300 @@ -45,20 +45,20 @@ # ifdef HAVE_STRUCT_SOCKADDR_STORAGE @@ -10148,7 +9860,7 @@ } } ---- lighttpd-1.4.11/src/http_auth.c 2006-02-01 13:02:52.000000000 +0200 +--- ../lighttpd-1.4.11/src/http_auth.c 2006-02-01 13:02:52.000000000 +0200 +++ lighttpd-1.4.12/src/http_auth.c 2006-07-11 22:07:53.000000000 +0300 @@ -22,7 +22,6 @@ #include @@ -11226,7 +10938,7 @@ + return 0; } ---- lighttpd-1.4.11/src/http_auth.h 2005-08-14 17:12:31.000000000 +0300 +--- ../lighttpd-1.4.11/src/http_auth.h 2005-08-14 17:12:31.000000000 +0300 +++ lighttpd-1.4.12/src/http_auth.h 2006-07-11 22:07:53.000000000 +0300 @@ -9,22 +9,26 @@ # include @@ -11301,7 +11013,7 @@ mod_auth_plugin_config conf; /* this is only used as long as no handler_ctx is setup */ } mod_auth_plugin_data; ---- lighttpd-1.4.11/src/http_auth_digest.h 2006-01-05 00:54:01.000000000 +0200 +--- ../lighttpd-1.4.11/src/http_auth_digest.h 2006-01-05 00:54:01.000000000 +0200 +++ lighttpd-1.4.12/src/http_auth_digest.h 2006-07-11 22:07:53.000000000 +0300 @@ -12,7 +12,7 @@ #ifdef USE_OPENSSL @@ -11312,7 +11024,7 @@ #endif #define OUT ---- lighttpd-1.4.11/src/http_chunk.c 2005-08-11 01:26:50.000000000 +0300 +--- ../lighttpd-1.4.11/src/http_chunk.c 2005-08-11 01:26:50.000000000 +0300 +++ lighttpd-1.4.12/src/http_chunk.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,7 +1,7 @@ /** @@ -11469,9 +11181,9 @@ + return chunkqueue_length(con->write_queue); } ---- lighttpd-1.4.11/src/http_resp.c 1970-01-01 03:00:00.000000000 +0300 -+++ lighttpd-1.4.12/src/http_resp.c 2006-07-11 22:07:53.000000000 +0300 -@@ -0,0 +1,261 @@ +--- ../lighttpd-1.4.11/src/http_resp.c 1970-01-01 03:00:00.000000000 +0300 ++++ lighttpd-1.4.12/src/http_resp.c 2006-07-15 22:43:21.000000000 +0300 +@@ -0,0 +1,274 @@ +#include +#include +#include @@ -11490,250 +11202,263 @@ + chunkqueue *cq; + + chunk *c; /* current chunk in the chunkqueue */ -+ size_t offset; /* current offset in current chunk */ ++ size_t offset; /* current offset in current chunk */ + -+ chunk *lookup_c; -+ size_t lookup_offset; ++ chunk *lookup_c; ++ size_t lookup_offset; + -+ int is_key; -+ int is_statusline; ++ int is_key; ++ int is_statusline; +} http_resp_tokenizer_t; + +http_resp *http_response_init(void) { -+ http_resp *resp = calloc(1, sizeof(*resp)); ++ http_resp *resp = calloc(1, sizeof(*resp)); + -+ resp->reason = buffer_init(); -+ resp->headers = array_init(); ++ resp->reason = buffer_init(); ++ resp->headers = array_init(); + -+ return resp; ++ return resp; +} + +void http_response_reset(http_resp *resp) { -+ if (!resp) return; ++ if (!resp) return; + -+ buffer_reset(resp->reason); -+ array_reset(resp->headers); ++ buffer_reset(resp->reason); ++ array_reset(resp->headers); + +} + +void http_response_free(http_resp *resp) { -+ if (!resp) return; ++ if (!resp) return; + -+ buffer_free(resp->reason); -+ array_free(resp->headers); ++ buffer_free(resp->reason); ++ array_free(resp->headers); + -+ free(resp); ++ free(resp); +} + +static int http_resp_get_next_char(http_resp_tokenizer_t *t, unsigned char *c) { -+ if (t->offset == t->c->mem->used - 1) { -+ /* end of chunk, open next chunk */ ++ if (t->offset == t->c->mem->used - 1) { ++ /* end of chunk, open next chunk */ + -+ if (!t->c->next) return -1; ++ if (!t->c->next) return -1; + -+ t->c = t->c->next; -+ t->offset = 0; -+ } ++ t->c = t->c->next; ++ t->offset = 0; ++ } + -+ *c = t->c->mem->ptr[t->offset++]; ++ *c = t->c->mem->ptr[t->offset++]; + -+ t->lookup_offset = t->offset; -+ t->lookup_c = t->c; ++ t->lookup_offset = t->offset; ++ t->lookup_c = t->c; + -+ //fprintf(stderr, "%s.%d: get: %c (%d) at offset: %d\r\n", __FILE__, __LINE__, *c > 31 ? *c : ' ', *c, t->offset - 1); ++#if 0 ++ fprintf(stderr, "%s.%d: get: %c (%d) at offset: %d\r\n", __FILE__, __LINE__, *c > 31 ? *c : ' ', *c, t->offset - 1); ++#endif + -+ return 0; ++ return 0; +} + +static int http_resp_lookup_next_char(http_resp_tokenizer_t *t, unsigned char *c) { -+ if (t->lookup_offset == t->lookup_c->mem->used - 1) { -+ /* end of chunk, open next chunk */ ++ if (t->lookup_offset == t->lookup_c->mem->used - 1) { ++ /* end of chunk, open next chunk */ + -+ if (!t->lookup_c->next) return -1; ++ if (!t->lookup_c->next) return -1; + -+ t->lookup_c = t->lookup_c->next; -+ t->lookup_offset = 0; -+ } -+ -+ *c = t->lookup_c->mem->ptr[t->lookup_offset++]; -+ -+ //fprintf(stderr, "%s.%d: lookup: %c (%d) at offset: %d\r\n", __FILE__, __LINE__, *c > 31 ? *c : ' ', *c, t->lookup_offset - 1); ++ t->lookup_c = t->lookup_c->next; ++ t->lookup_offset = 0; ++ } + ++ *c = t->lookup_c->mem->ptr[t->lookup_offset++]; ++#if 0 ++ fprintf(stderr, "%s.%d: lookup: %c (%d) at offset: %d\r\n", __FILE__, __LINE__, *c > 31 ? *c : ' ', *c, t->lookup_offset - 1); ++#endif + -+ return 0; ++ return 0; +} + + +static int http_resp_tokenizer( -+ http_resp_tokenizer_t *t, -+ int *token_id, -+ buffer *token ++ http_resp_tokenizer_t *t, ++ int *token_id, ++ buffer *token +) { -+ unsigned char c; -+ int tid = 0; -+ -+ /* push the token to the parser */ -+ -+ while (tid == 0 && 0 == http_resp_get_next_char(t, &c)) { -+ switch (c) { -+ case ':': -+ tid = TK_COLON; -+ -+ t->is_key = 0; -+ -+ break; -+ case ' ': -+ case '\t': -+ /* ignore WS */ -+ -+ break; -+ case '\r': -+ if (0 != http_resp_lookup_next_char(t, &c)) return -1; -+ -+ if (c == '\n') { -+ tid = TK_CRLF; -+ -+ t->c = t->lookup_c; -+ t->offset = t->lookup_offset; -+ -+ t->is_statusline = 0; -+ t->is_key = 1; -+ } else { -+ fprintf(stderr, "%s.%d: CR with out LF\r\n", __FILE__, __LINE__); -+ return -1; -+ } -+ break; -+ case '\n': -+ tid = TK_CRLF; -+ -+ t->is_statusline = 0; -+ t->is_key = 1; -+ -+ break; -+ default: -+ while (c >= 32 && c != 127 && c != 255) { -+ if (t->is_statusline) { -+ if (c == ':') {t->is_statusline = 0; break; } /* this is not a status line by a real header */ -+ if (c == 32) break; /* the space is a splitter in the statusline */ -+ } else { -+ if (t->is_key) { -+ if (c == ':') break; /* the : is the splitter between key and value */ -+ } -+ } -+ if (0 != http_resp_lookup_next_char(t, &c)) return -1; -+ } -+ -+ if (t->c == t->lookup_c && -+ t->offset == t->lookup_offset + 1) { -+ -+ fprintf(stderr, "%s.%d: invalid char in string\n", __FILE__, __LINE__); -+ return -1; -+ } -+ -+ tid = TK_STRING; -+ -+ /* the lookup points to the first invalid char */ -+ t->lookup_offset--; -+ -+ /* no overlapping string */ -+ if (t->c == t->lookup_c) { -+ buffer_copy_string_len(token, t->c->mem->ptr + t->offset - 1, t->lookup_offset - t->offset + 1); -+ } else { -+ /* first chunk */ -+ buffer_copy_string_len(token, t->c->mem->ptr + t->offset - 1, t->c->mem->used - t->offset); -+ -+ /* chunks in the middle */ -+ for (t->c = t->c->next; t->c != t->lookup_c; t->c = t->c->next) { -+ buffer_append_string_buffer(token, t->c->mem); -+ t->offset = t->c->mem->used - 1; -+ } -+ -+ /* last chunk */ -+ buffer_append_string_len(token, t->c->mem->ptr, t->lookup_offset); -+ } -+ -+ t->offset = t->lookup_offset; -+ -+ break; -+ } ++ unsigned char c; ++ int tid = 0; ++ ++ /* push the token to the parser */ ++ ++ while (tid == 0 && 0 == http_resp_get_next_char(t, &c)) { ++ switch (c) { ++ case ':': ++ tid = TK_COLON; ++ ++ t->is_key = 0; ++ ++ break; ++ case ' ': ++ case '\t': ++ /* ignore WS */ ++ ++ break; ++ case '\r': ++ if (0 != http_resp_lookup_next_char(t, &c)) return -1; ++ ++ if (c == '\n') { ++ tid = TK_CRLF; ++ ++ t->c = t->lookup_c; ++ t->offset = t->lookup_offset; ++ ++ t->is_statusline = 0; ++ t->is_key = 1; ++ } else { ++ fprintf(stderr, "%s.%d: CR with out LF\r\n", __FILE__, __LINE__); ++ return -1; ++ } ++ break; ++ case '\n': ++ tid = TK_CRLF; ++ ++ t->is_statusline = 0; ++ t->is_key = 1; ++ ++ break; ++ default: ++ while (c >= 32 && c != 127 && c != 255) { ++ if (t->is_statusline) { ++ if (c == ':') { t->is_statusline = 0; break; } /* this is not a status line by a real header */ ++ if (c == 32) break; /* the space is a splitter in the statusline */ ++ } else { ++ if (t->is_key) { ++ if (c == ':') break; /* the : is the splitter between key and value */ ++ } ++ } ++ if (0 != http_resp_lookup_next_char(t, &c)) return -1; ++ } ++ ++ if (t->c == t->lookup_c && ++ t->offset == t->lookup_offset + 1) { ++ ++ fprintf(stderr, "%s.%d: invalid char in string\n", __FILE__, __LINE__); ++ return -1; ++ } ++ ++ tid = TK_STRING; ++ ++ /* the lookup points to the first invalid char */ ++ t->lookup_offset--; ++ ++ /* no overlapping string */ ++ if (t->c == t->lookup_c) { ++ buffer_copy_string_len(token, t->c->mem->ptr + t->offset - 1, t->lookup_offset - t->offset + 1); ++ } else { ++ /* first chunk */ ++ buffer_copy_string_len(token, t->c->mem->ptr + t->offset - 1, t->c->mem->used - t->offset); ++ ++ /* chunks in the middle */ ++ for (t->c = t->c->next; t->c != t->lookup_c; t->c = t->c->next) { ++ buffer_append_string_buffer(token, t->c->mem); ++ t->offset = t->c->mem->used - 1; ++ } ++ ++ /* last chunk */ ++ buffer_append_string_len(token, t->c->mem->ptr, t->lookup_offset); ++ } ++ ++ t->offset = t->lookup_offset; ++ ++ break; ++ } + } + -+ if (tid) { ++ if (tid) { + *token_id = tid; + -+ return 1; -+ } ++ return 1; ++ } + -+ return -1; ++ return -1; +} + +parse_status_t http_response_parse_cq(chunkqueue *cq, http_resp *resp) { -+ http_resp_tokenizer_t t; ++ http_resp_tokenizer_t t; + void *pParser = NULL; + int token_id = 0; + buffer *token = NULL; + http_resp_ctx_t context; -+ parse_status_t ret = PARSE_UNSET; -+ int last_token_id = 0; ++ parse_status_t ret = PARSE_UNSET; ++ int last_token_id = 0; + + t.cq = cq; -+ t.c = cq->first; -+ t.offset = t.c->offset; -+ t.is_key = 0; -+ t.is_statusline = 1; ++ t.c = cq->first; ++ t.offset = t.c->offset; ++ t.is_key = 0; ++ t.is_statusline = 1; + + context.ok = 1; -+ context.errmsg = buffer_init(); -+ context.resp = resp; ++ context.errmsg = buffer_init(); ++ context.resp = resp; + + pParser = http_resp_parserAlloc( malloc ); + token = buffer_init(); -+ /* http_resp_parserTrace(stderr, "http-response: "); */ ++#if 0 ++ http_resp_parserTrace(stderr, "http-response: "); ++#endif + + while((1 == http_resp_tokenizer(&t, &token_id, token)) && context.ok) { + http_resp_parser(pParser, token_id, token, &context); + + token = buffer_init(); + -+ if (last_token_id == TK_CRLF && -+ token_id == TK_CRLF) break; ++ /* CRLF CRLF ... the header end sequence */ ++ if (last_token_id == TK_CRLF && ++ token_id == TK_CRLF) break; + -+ last_token_id = token_id; ++ last_token_id = token_id; + } + -+ /* oops, the parser failed */ -+ if (context.ok == 0) { -+ ret = PARSE_ERROR; ++ /* oops, the parser failed */ ++ if (context.ok == 0) { ++ ret = PARSE_ERROR; + -+ fprintf(stderr, "%s.%d: parsing failed at: ...%20s\r\n", -+ __FILE__, __LINE__, t.c->mem->ptr + t.offset); -+ } ++ fprintf(stderr, "%s.%d: parsing failed at: ...%20s\r\n", ++ __FILE__, __LINE__, t.c->mem->ptr + t.offset); ++ } + + http_resp_parser(pParser, 0, token, &context); + http_resp_parserFree(pParser, free ); + -+ if (context.ok == 0) { -+ /* we are missing the some tokens */ ++ if (context.ok == 0) { ++ /* we are missing the some tokens */ + -+ if (ret == PARSE_UNSET) ret = PARSE_NEED_MORE; -+ } else { -+ chunk *c; ++ if (!buffer_is_empty(context.errmsg)) { ++ fprintf(stderr, "%s.%d: hmm, %20s\r\n", ++ __FILE__, __LINE__, context.errmsg->ptr); ++ } + -+ for (c = cq->first; c != t.c; c = c->next) { -+ c->offset = c->mem->used - 1; -+ } ++ if (ret == PARSE_UNSET) { ++ ret = buffer_is_empty(context.errmsg) ? PARSE_NEED_MORE : PARSE_ERROR; ++ } ++ } else { ++ chunk *c; ++ ++ for (c = cq->first; c != t.c; c = c->next) { ++ c->offset = c->mem->used - 1; ++ } + -+ c->offset = t.offset; ++ c->offset = t.offset; + -+ ret = PARSE_SUCCESS; -+ } ++ ret = PARSE_SUCCESS; ++ } + -+ buffer_free(token); ++ buffer_free(token); ++ buffer_free(context.errmsg); + -+ return ret; ++ return ret; +} + ---- lighttpd-1.4.11/src/http_resp.h 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/src/http_resp.h 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/src/http_resp.h 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,34 @@ +#ifndef _HTTP_RESP_H_ @@ -11770,9 +11495,9 @@ +parse_status_t http_response_parse_cq(chunkqueue *cq, http_resp *http_response); + +#endif ---- lighttpd-1.4.11/src/http_resp_parser.c 1970-01-01 03:00:00.000000000 +0300 -+++ lighttpd-1.4.12/src/http_resp_parser.c 2006-07-11 22:08:02.000000000 +0300 -@@ -0,0 +1,894 @@ +--- ../lighttpd-1.4.11/src/http_resp_parser.c 1970-01-01 03:00:00.000000000 +0300 ++++ lighttpd-1.4.12/src/http_resp_parser.c 2006-07-15 22:44:07.000000000 +0300 +@@ -0,0 +1,895 @@ +/* Driver template for the LEMON parser generator. +** The author disclaims copyright to this source code. +*/ @@ -12336,14 +12061,14 @@ + } else { + char *err; + resp->status = strtol(ds->value->ptr, &err, 10); -+ -+ if (*err != '\0') { ++ ++ if (*err != '\0' && *err != ' ') { + buffer_copy_string(ctx->errmsg, "expected a number: "); + buffer_append_string_buffer(ctx->errmsg, ds->value); ++ buffer_append_string(ctx->errmsg, err); + + ctx->ok = 0; + } -+ + } + + yymsp[-1].minor.yy12 = NULL; @@ -12404,12 +12129,13 @@ + case 4: +#line 93 "./http_resp_parser.y" +{ -+ buffer_copy_string_buffer(yygotominor.yy0, yymsp[0].minor.yy0); ++ yygotominor.yy0 = yymsp[0].minor.yy0; ++ yymsp[0].minor.yy0 = NULL; +} -+#line 634 "http_resp_parser.c" ++#line 635 "http_resp_parser.c" + break; + case 5: -+#line 97 "./http_resp_parser.y" ++#line 98 "./http_resp_parser.y" +{ + yygotominor.yy0 = yymsp[-1].minor.yy0; + @@ -12418,10 +12144,10 @@ + + yymsp[-1].minor.yy0 = NULL; +} -+#line 646 "http_resp_parser.c" ++#line 647 "http_resp_parser.c" + break; + case 6: -+#line 106 "./http_resp_parser.y" ++#line 107 "./http_resp_parser.y" +{ + yygotominor.yy12 = yymsp[-1].minor.yy12; + @@ -12429,26 +12155,26 @@ + + yymsp[-1].minor.yy12 = NULL; +} -+#line 657 "http_resp_parser.c" ++#line 658 "http_resp_parser.c" + break; + case 7: -+#line 114 "./http_resp_parser.y" ++#line 115 "./http_resp_parser.y" +{ + yygotominor.yy12 = array_init(); + + array_insert_unique(yygotominor.yy12, (data_unset *)yymsp[0].minor.yy9); +} -+#line 666 "http_resp_parser.c" ++#line 667 "http_resp_parser.c" + break; + case 8: -+#line 119 "./http_resp_parser.y" ++#line 120 "./http_resp_parser.y" +{ + yygotominor.yy9 = data_string_init(); + + buffer_copy_string_buffer(yygotominor.yy9->key, yymsp[-3].minor.yy0); + buffer_copy_string_buffer(yygotominor.yy9->value, yymsp[-1].minor.yy0); +} -+#line 676 "http_resp_parser.c" ++#line 677 "http_resp_parser.c" + yy_destructor(3,&yymsp[-2].minor); + yy_destructor(1,&yymsp[0].minor); + break; @@ -12483,7 +12209,7 @@ + + ctx->ok = 0; + -+#line 711 "http_resp_parser.c" ++#line 712 "http_resp_parser.c" + http_resp_parserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + @@ -12667,7 +12393,7 @@ + }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); + return; +} ---- lighttpd-1.4.11/src/inet_ntop_cache.c 2005-08-11 01:26:38.000000000 +0300 +--- ../lighttpd-1.4.11/src/inet_ntop_cache.c 2005-08-11 01:26:38.000000000 +0300 +++ lighttpd-1.4.12/src/inet_ntop_cache.c 2006-07-11 22:07:52.000000000 +0300 @@ -8,7 +8,7 @@ #include "sys-socket.h" @@ -12718,7 +12444,7 @@ return srv->inet_ntop_cache[i].b2; #else UNUSED(srv); ---- lighttpd-1.4.11/src/joblist.c 2005-08-11 01:26:41.000000000 +0300 +--- ../lighttpd-1.4.11/src/joblist.c 2005-08-11 01:26:41.000000000 +0300 +++ lighttpd-1.4.12/src/joblist.c 2006-07-11 22:07:51.000000000 +0300 @@ -7,7 +7,7 @@ @@ -12780,7 +12506,7 @@ return 0; } ---- lighttpd-1.4.11/src/keyvalue.c 2006-03-02 16:08:06.000000000 +0200 +--- ../lighttpd-1.4.11/src/keyvalue.c 2006-03-02 16:08:06.000000000 +0200 +++ lighttpd-1.4.12/src/keyvalue.c 2006-07-11 22:07:51.000000000 +0300 @@ -87,7 +87,8 @@ { 504, "Gateway Timeout" }, @@ -13088,7 +12814,7 @@ + free(kvb); } ---- lighttpd-1.4.11/src/keyvalue.h 2006-03-02 16:08:06.000000000 +0200 +--- ../lighttpd-1.4.11/src/keyvalue.h 2006-03-02 16:08:06.000000000 +0200 +++ lighttpd-1.4.12/src/keyvalue.h 2006-07-11 22:07:52.000000000 +0300 @@ -9,19 +9,19 @@ # include @@ -13156,7 +12882,7 @@ char *realm; httpauth_type type; } httpauth_keyvalue; ---- lighttpd-1.4.11/src/lemon.c 2005-09-01 00:21:34.000000000 +0300 +--- ../lighttpd-1.4.11/src/lemon.c 2005-09-01 00:21:34.000000000 +0300 +++ lighttpd-1.4.12/src/lemon.c 2006-07-11 22:07:51.000000000 +0300 @@ -579,7 +579,7 @@ */ @@ -13329,7 +13055,7 @@ (sizeof(x4node) + sizeof(x4node*))*64 ); if( x4a->tbl==0 ){ free(x4a); ---- lighttpd-1.4.11/src/lempar.c 2005-08-11 01:26:40.000000000 +0300 +--- ../lighttpd-1.4.11/src/lempar.c 2005-08-11 01:26:40.000000000 +0300 +++ lighttpd-1.4.12/src/lempar.c 2006-07-11 22:07:51.000000000 +0300 @@ -8,10 +8,10 @@ /* Next is all token values, in a form suitable for use by makeheaders. @@ -13474,18 +13200,17 @@ ** ** This is what we do if the grammar does define ERROR: ** ---- lighttpd-1.4.11/src/log.c 2005-11-07 15:01:35.000000000 +0200 -+++ lighttpd-1.4.12/src/log.c 2006-07-11 22:07:53.000000000 +0300 -@@ -5,7 +5,7 @@ +--- ../lighttpd-1.4.11/src/log.c 2005-11-07 15:01:35.000000000 +0200 ++++ lighttpd-1.4.12/src/log.c 2006-07-15 22:43:21.000000000 +0300 +@@ -5,7 +5,6 @@ #include #include #include -#include -+//#include #include #include -@@ -16,6 +16,10 @@ +@@ -16,6 +15,10 @@ #include "config.h" #endif @@ -13496,7 +13221,7 @@ #ifdef HAVE_SYSLOG_H #include #endif -@@ -23,6 +27,8 @@ +@@ -23,6 +26,8 @@ #include "log.h" #include "array.h" @@ -13505,7 +13230,7 @@ #ifdef HAVE_VALGRIND_VALGRIND_H #include #endif -@@ -31,38 +37,38 @@ +@@ -31,38 +36,38 @@ # define O_LARGEFILE 0 #endif @@ -13554,7 +13279,7 @@ return -1; } #ifdef FD_CLOEXEC -@@ -71,15 +77,15 @@ +@@ -71,15 +76,15 @@ #endif srv->errorlog_mode = ERRORLOG_FILE; } @@ -13573,7 +13298,7 @@ /* move stderr to /dev/null */ if (close_stderr && -1 != (fd = open("/dev/null", O_WRONLY))) { -@@ -90,33 +96,33 @@ +@@ -90,33 +95,33 @@ return 0; } @@ -13616,7 +13341,7 @@ srv->errorlog_mode = ERRORLOG_SYSLOG; #endif } else { -@@ -125,15 +131,15 @@ +@@ -125,15 +130,15 @@ srv->errorlog_fd = new_fd; } } @@ -13635,7 +13360,7 @@ switch(srv->errorlog_mode) { case ERRORLOG_FILE: close(srv->errorlog_fd); -@@ -146,13 +152,13 @@ +@@ -146,13 +151,13 @@ case ERRORLOG_STDERR: break; } @@ -13651,7 +13376,7 @@ switch(srv->errorlog_mode) { case ERRORLOG_FILE: case ERRORLOG_STDERR: -@@ -161,7 +167,7 @@ +@@ -161,7 +166,7 @@ buffer_prepare_copy(srv->ts_debug_str, 255); strftime(srv->ts_debug_str->ptr, srv->ts_debug_str->size - 1, "%Y-%m-%d %H:%M:%S", localtime(&(srv->cur_ts))); srv->ts_debug_str->used = strlen(srv->ts_debug_str->ptr) + 1; @@ -13660,7 +13385,7 @@ srv->last_generated_debug_ts = srv->cur_ts; } -@@ -173,19 +179,19 @@ +@@ -173,19 +178,19 @@ BUFFER_COPY_STRING_CONST(srv->errorlog_buf, "("); break; } @@ -13684,7 +13409,7 @@ switch(*fmt) { case 's': /* string */ s = va_arg(ap, char *); -@@ -227,7 +233,7 @@ +@@ -227,7 +232,7 @@ break; case '(': case ')': @@ -13693,7 +13418,7 @@ case '>': case ',': case ' ': -@@ -236,7 +242,7 @@ +@@ -236,7 +241,7 @@ } } va_end(ap); @@ -13702,7 +13427,7 @@ switch(srv->errorlog_mode) { case ERRORLOG_FILE: BUFFER_APPEND_STRING_CONST(srv->errorlog_buf, "\n"); -@@ -246,11 +252,13 @@ +@@ -246,11 +251,13 @@ BUFFER_APPEND_STRING_CONST(srv->errorlog_buf, "\n"); write(STDERR_FILENO, srv->errorlog_buf->ptr, srv->errorlog_buf->used - 1); break; @@ -13717,7 +13442,7 @@ return 0; } ---- lighttpd-1.4.11/src/log.h 2005-08-11 01:26:36.000000000 +0300 +--- ../lighttpd-1.4.11/src/log.h 2005-08-11 01:26:36.000000000 +0300 +++ lighttpd-1.4.12/src/log.h 2006-07-11 22:07:53.000000000 +0300 @@ -9,5 +9,5 @@ int log_error_close(server *srv); @@ -13726,7 +13451,7 @@ - + #endif ---- lighttpd-1.4.11/src/md5.h 2005-11-17 16:20:40.000000000 +0200 +--- ../lighttpd-1.4.11/src/md5.h 2005-11-17 16:20:40.000000000 +0200 +++ lighttpd-1.4.12/src/md5.h 2006-07-11 22:07:53.000000000 +0300 @@ -30,9 +30,15 @@ # include @@ -13744,7 +13469,7 @@ /* MD5 context. */ typedef struct { ---- lighttpd-1.4.11/src/mod_access.c 2006-01-14 19:44:54.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_access.c 2006-01-14 19:44:54.000000000 +0200 +++ lighttpd-1.4.12/src/mod_access.c 2006-07-11 22:07:53.000000000 +0300 @@ -8,126 +8,125 @@ @@ -13947,7 +13672,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_accesslog.c 2006-01-31 14:01:43.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_accesslog.c 2006-01-31 14:01:43.000000000 +0200 +++ lighttpd-1.4.12/src/mod_accesslog.c 2006-07-11 22:07:53.000000000 +0300 @@ -6,8 +6,7 @@ #include @@ -14802,7 +14527,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_alias.c 2006-03-01 23:18:51.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_alias.c 2006-03-01 23:18:51.000000000 +0200 +++ lighttpd-1.4.12/src/mod_alias.c 2006-07-11 22:07:51.000000000 +0300 @@ -8,6 +8,7 @@ #include "buffer.h" @@ -15018,7 +14743,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_auth.c 2006-02-15 20:01:31.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_auth.c 2006-02-15 20:01:31.000000000 +0200 +++ lighttpd-1.4.12/src/mod_auth.c 2006-07-11 22:07:53.000000000 +0300 @@ -5,168 +5,167 @@ #include @@ -15743,7 +15468,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_cgi.c 2006-02-22 15:15:10.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_cgi.c 2006-02-22 15:15:10.000000000 +0200 +++ lighttpd-1.4.12/src/mod_cgi.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,21 +1,8 @@ #include @@ -17185,7 +16910,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_cml.c 2006-01-30 13:51:48.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_cml.c 2006-01-30 13:51:48.000000000 +0200 +++ lighttpd-1.4.12/src/mod_cml.c 2006-07-11 22:07:51.000000000 +0300 @@ -4,7 +4,6 @@ #include @@ -17517,7 +17242,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_cml.h 2006-01-30 13:51:35.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_cml.h 2006-01-30 13:51:35.000000000 +0200 +++ lighttpd-1.4.12/src/mod_cml.h 2006-07-11 22:07:51.000000000 +0300 @@ -16,10 +16,10 @@ @@ -17553,7 +17278,7 @@ } plugin_data; int cache_parse_lua(server *srv, connection *con, plugin_data *p, buffer *fn); ---- lighttpd-1.4.11/src/mod_cml_funcs.c 2005-11-17 16:15:08.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_cml_funcs.c 2005-11-17 16:15:08.000000000 +0200 +++ lighttpd-1.4.12/src/mod_cml_funcs.c 2006-07-11 22:07:52.000000000 +0300 @@ -4,8 +4,7 @@ #include @@ -17899,7 +17624,7 @@ return 1; } #endif ---- lighttpd-1.4.11/src/mod_cml_lua.c 2006-01-30 13:56:40.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_cml_lua.c 2006-01-30 13:56:40.000000000 +0200 +++ lighttpd-1.4.12/src/mod_cml_lua.c 2006-07-11 22:07:53.000000000 +0300 @@ -23,7 +23,7 @@ #ifdef USE_OPENSSL @@ -18377,7 +18102,7 @@ return ret /* cache-error */; } #else ---- lighttpd-1.4.11/src/mod_compress.c 2005-11-18 13:49:14.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_compress.c 2005-11-18 13:49:14.000000000 +0200 +++ lighttpd-1.4.12/src/mod_compress.c 2006-07-11 22:07:53.000000000 +0300 @@ -2,7 +2,6 @@ #include @@ -19266,8 +18991,8 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_dirlisting.c 2006-01-13 00:00:45.000000000 +0200 -+++ lighttpd-1.4.12/src/mod_dirlisting.c 2006-07-11 22:07:53.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_dirlisting.c 2006-01-13 00:00:45.000000000 +0200 ++++ lighttpd-1.4.12/src/mod_dirlisting.c 2006-07-15 22:43:21.000000000 +0300 @@ -1,11 +1,9 @@ #include #include @@ -19280,7 +19005,22 @@ #include #include "base.h" -@@ -31,6 +29,9 @@ +@@ -17,6 +15,9 @@ + #include "response.h" + #include "stat_cache.h" + #include "stream.h" ++#include "etag.h" ++ ++#include "sys-strings.h" + + /** + * this is a dirlisting for a lighttpd plugin +@@ -27,10 +28,13 @@ + #include + #endif + +-#ifdef HAVE_ATTR_ATTRIBUTES_H ++#ifdef HAVE_XATTR #include #endif @@ -19290,7 +19030,7 @@ /* plugin config for all request/connections */ typedef struct { -@@ -54,7 +55,7 @@ +@@ -54,7 +58,7 @@ unsigned short hide_readme_file; unsigned short show_header; unsigned short hide_header_file; @@ -19299,7 +19039,7 @@ excludes_buffer *excludes; buffer *external_css; -@@ -63,13 +64,13 @@ +@@ -63,13 +67,14 @@ typedef struct { PLUGIN_DATA; @@ -19308,6 +19048,7 @@ buffer *tmp_buf; buffer *content_charset; - ++ buffer *path; + plugin_config **config_storage; - @@ -19317,7 +19058,7 @@ } plugin_data; excludes_buffer *excludes_buffer_init(void) { -@@ -146,44 +147,44 @@ +@@ -146,44 +151,46 @@ /* init the plugin data */ INIT_FUNC(mod_dirlisting_init) { plugin_data *p; @@ -19328,6 +19069,7 @@ p->tmp_buf = buffer_init(); p->content_charset = buffer_init(); - ++ p->path = buffer_init(); + return p; } @@ -19363,6 +19105,7 @@ - + buffer_free(p->tmp_buf); ++ buffer_free(p->path); buffer_free(p->content_charset); - + @@ -19372,7 +19115,7 @@ return HANDLER_GO_ON; } -@@ -215,10 +216,10 @@ +@@ -215,10 +222,10 @@ if (0 != excludes_buffer_append(s->excludes, ((data_string *)(da->value->data[j]))->value)) { #ifdef HAVE_PCRE_H @@ -19385,7 +19128,7 @@ "pcre support is missing, please install libpcre and the headers"); #endif } -@@ -233,8 +234,8 @@ +@@ -233,8 +240,8 @@ SETDEFAULTS_FUNC(mod_dirlisting_set_defaults) { plugin_data *p = p_d; size_t i = 0; @@ -19396,7 +19139,7 @@ { "dir-listing.exclude", NULL, T_CONFIG_LOCAL, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ { "dir-listing.activate", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ { "dir-listing.hide-dotfiles", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 2 */ -@@ -245,18 +246,18 @@ +@@ -245,18 +252,18 @@ { "dir-listing.show-header", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 7 */ { "dir-listing.hide-header-file", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 8 */ { "server.dir-listing", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 9 */ @@ -19420,7 +19163,7 @@ s = calloc(1, sizeof(plugin_config)); s->excludes = excludes_buffer_init(); s->dir_listing = 0; -@@ -267,7 +268,7 @@ +@@ -267,7 +274,7 @@ s->show_header = 0; s->hide_header_file = 0; s->encoding = buffer_init(); @@ -19429,7 +19172,7 @@ cv[0].destination = s->excludes; cv[1].destination = &(s->dir_listing); cv[2].destination = &(s->hide_dot_files); -@@ -292,60 +293,57 @@ +@@ -292,60 +299,57 @@ return HANDLER_GO_ON; } @@ -19513,7 +19256,7 @@ typedef struct { size_t namelen; -@@ -432,7 +430,7 @@ +@@ -432,7 +436,7 @@ static void http_list_directory_header(server *srv, connection *con, plugin_data *p, buffer *out) { UNUSED(srv); @@ -19522,7 +19265,7 @@ BUFFER_APPEND_STRING_CONST(out, "\n" "\n" -@@ -492,11 +490,11 @@ +@@ -492,11 +496,11 @@ if (p->conf.show_header) { stream s; /* if we have a HEADER file, display it in
 */
@@ -19537,7 +19280,7 @@
  		if (-1 != stream_open(&s, p->tmp_buf)) {
  			BUFFER_APPEND_STRING_CONST(out, "
");
  			buffer_append_string_encoded(out, s.start, s.size, ENCODING_MINIMAL_XML);
-@@ -531,21 +529,21 @@
+@@ -531,21 +535,21 @@
  
  static void http_list_directory_footer(server *srv, connection *con, plugin_data *p, buffer *out) {
  	UNUSED(srv);
@@ -19564,7 +19307,7 @@
  		if (-1 != stream_open(&s, p->tmp_buf)) {
  			BUFFER_APPEND_STRING_CONST(out, "
");
  			buffer_append_string_encoded(out, s.start, s.size, ENCODING_MINIMAL_XML);
-@@ -553,7 +551,7 @@
+@@ -553,7 +557,7 @@
  		}
  		stream_close(&s);
  	}
@@ -19573,16 +19316,37 @@
  	BUFFER_APPEND_STRING_CONST(out,
  		"
" ); -@@ -595,7 +593,7 @@ +@@ -576,7 +580,6 @@ + buffer *out; + struct dirent *dent; + struct stat st; +- char *path, *path_file; + size_t i; + int hide_dotfiles = p->conf.hide_dot_files; + dirls_list_t dirs, files, *list; +@@ -586,6 +589,7 @@ + size_t k; + const char *content_type; + long name_max; ++ + #ifdef HAVE_XATTR + char attrval[128]; + int attrlen; +@@ -594,10 +598,10 @@ + struct tm tm; #endif - if (dir->used == 0) return -1; +- if (dir->used == 0) return -1; - -+ - i = dir->used - 1; +- i = dir->used - 1; ++ /* empty pathname, never ... */ ++ if (buffer_is_empty(dir)) return -1; ++ /* max-length for the opendir */ #ifdef HAVE_PATHCONF -@@ -606,19 +604,24 @@ + if (-1 == (name_max = pathconf(dir->ptr, _PC_NAME_MAX))) { + #ifdef NAME_MAX +@@ -606,22 +610,24 @@ name_max = 256; /* stupid default */ #endif } @@ -19593,24 +19357,30 @@ name_max = NAME_MAX; #endif - +- path = malloc(dir->used + name_max); +- assert(path); +- strcpy(path, dir->ptr); +- path_file = path + i; + +- if (NULL == (dp = opendir(path))) { +- log_error_write(srv, __FILE__, __LINE__, "sbs", ++ buffer_copy_string_buffer(p->path, dir); ++ PATHNAME_APPEND_SLASH(p->path); + - path = malloc(dir->used + name_max); - assert(path); - strcpy(path, dir->ptr); +#ifdef _WIN32 -+ /* append \*.* to the path and keep the \ as part of the pathname */ -+ strcat(path, "\\*.*"); -+ i++; ++ /* append *.* to the path */ ++ buffer_append_string(path, "*.*"); +#endif - path_file = path + i; - - if (NULL == (dp = opendir(path))) { -- log_error_write(srv, __FILE__, __LINE__, "sbs", ++ ++ if (NULL == (dp = opendir(p->path->ptr))) { + log_error_write(srv, __FILE__, __LINE__, "sbs", "opendir failed:", dir, strerror(errno)); - free(path); -@@ -633,7 +636,7 @@ +- free(path); + return -1; + } + +@@ -633,7 +639,7 @@ assert(files.ent); files.size = DIRLIST_BLOB_SIZE; files.used = 0; @@ -19619,7 +19389,7 @@ while ((dent = readdir(dp)) != NULL) { unsigned short exclude_match = 0; -@@ -686,15 +689,17 @@ +@@ -686,15 +692,21 @@ #endif i = strlen(dent->d_name); @@ -19630,17 +19400,22 @@ */ if (i > (size_t)name_max) continue; - -+ - memcpy(path_file, dent->d_name, i + 1); +- memcpy(path_file, dent->d_name, i + 1); - if (stat(path, &st) != 0) -+ if (stat(path, &st) != 0) { -+ fprintf(stderr, "%s.%d: %s, %s\r\n", __FILE__, __LINE__, path, strerror(errno)); ++ ++ /* build the dirname */ ++ buffer_copy_string_buffer(p->path, dir); ++ PATHNAME_APPEND_SLASH(p->path); ++ buffer_append_string(p->path, dent->d_name); ++ ++ if (stat(p->path->ptr, &st) != 0) { ++ fprintf(stderr, "%s.%d: %s, %s\r\n", __FILE__, __LINE__, p->path->ptr, strerror(errno)); continue; -+ } ++ } list = &files; if (S_ISDIR(st.st_mode)) -@@ -740,7 +745,7 @@ +@@ -740,7 +752,7 @@ #else strftime(datebuf, sizeof(datebuf), "%Y-%b-%d %H:%M:%S", localtime(&(tmp->mtime))); #endif @@ -19649,16 +19424,25 @@ BUFFER_APPEND_STRING_CONST(out, "namelen, ENCODING_REL_URI_PART); BUFFER_APPEND_STRING_CONST(out, "/\">"); -@@ -758,7 +763,7 @@ +@@ -757,18 +769,22 @@ + tmp = files.ent[i]; content_type = NULL; ++ #ifdef HAVE_XATTR - -+ if (con->conf.use_xattr) { - memcpy(path_file, DIRLIST_ENT_NAME(tmp), tmp->namelen + 1); +- memcpy(path_file, DIRLIST_ENT_NAME(tmp), tmp->namelen + 1); ++ /* build the dirname */ ++ buffer_copy_string_buffer(p->path, dir); ++ PATHNAME_APPEND_SLASH(p->path); ++ buffer_append_string_len(p->path, DIRLIST_ENT_NAME(tmp), tmp->namelen); ++ attrlen = sizeof(attrval) - 1; -@@ -768,7 +773,7 @@ +- if (attr_get(path, "Content-Type", attrval, &attrlen, 0) == 0) { ++ if (attr_get(p->path->ptr, "Content-Type", attrval, &attrlen, 0) == 0) { + attrval[attrlen] = '\0'; + content_type = attrval; } } #endif @@ -19667,7 +19451,7 @@ if (content_type == NULL) { content_type = "application/octet-stream"; for (k = 0; k < con->conf.mimetypes->used; k++) { -@@ -788,7 +793,7 @@ +@@ -788,7 +804,7 @@ } } } @@ -19676,39 +19460,73 @@ #ifdef HAVE_LOCALTIME_R localtime_r(&(tmp->mtime), &tm); strftime(datebuf, sizeof(datebuf), "%Y-%b-%d %H:%M:%S", &tm); -@@ -837,36 +842,36 @@ +@@ -814,7 +830,6 @@ + + free(files.ent); + free(dirs.ent); +- free(path); + + http_list_directory_footer(srv, con, p, out); + +@@ -837,36 +852,55 @@ URIHANDLER_FUNC(mod_dirlisting_subrequest) { plugin_data *p = p_d; stat_cache_entry *sce = NULL; - -+ - UNUSED(srv); +- UNUSED(srv); - +- if (con->physical.path->used == 0) return HANDLER_GO_ON; +- if (con->uri.path->used == 0) return HANDLER_GO_ON; ++ buffer *mtime; ++ data_string *ds; + - if (con->physical.path->used == 0) return HANDLER_GO_ON; - if (con->uri.path->used == 0) return HANDLER_GO_ON; ++ if (con->uri.path->used < 2) return HANDLER_GO_ON; if (con->uri.path->ptr[con->uri.path->used - 2] != '/') return HANDLER_GO_ON; - ++ if (con->physical.path->used == 0) return HANDLER_GO_ON; + mod_dirlisting_patch_connection(srv, con, p); if (!p->conf.dir_listing) return HANDLER_GO_ON; - ++ ++ if (HANDLER_ERROR == stat_cache_get_entry(srv, con, con->physical.path, &sce)) { ++ /* just a second ago the file was still there */ ++ return HANDLER_GO_ON; ++ } ++ ++ if (!S_ISDIR(sce->st.st_mode)) return HANDLER_GO_ON; + if (con->conf.log_request_handling) { log_error_write(srv, __FILE__, __LINE__, "s", "-- handling the request as Dir-Listing"); log_error_write(srv, __FILE__, __LINE__, "sb", "URI :", con->uri.path); } - +- if (HANDLER_ERROR == stat_cache_get_entry(srv, con, con->physical.path, &sce)) { +- fprintf(stderr, "%s.%d: %s\n", __FILE__, __LINE__, con->physical.path->ptr); +- SEGFAULT(); + - if (HANDLER_ERROR == stat_cache_get_entry(srv, con, con->physical.path, &sce)) { - fprintf(stderr, "%s.%d: %s\n", __FILE__, __LINE__, con->physical.path->ptr); - SEGFAULT(); ++ /* perhaps this a cachable request ++ * - we use the etag of the directory ++ * */ ++ ++ etag_mutate(con->physical.etag, sce->etag); ++ response_header_overwrite(srv, con, CONST_STR_LEN("ETag"), CONST_BUF_LEN(con->physical.etag)); ++ ++ /* prepare header */ ++ if (NULL == (ds = (data_string *)array_get_element(con->response.headers, "Last-Modified"))) { ++ mtime = strftime_cache_get(srv, sce->st.st_mtime); ++ response_header_overwrite(srv, con, CONST_STR_LEN("Last-Modified"), CONST_BUF_LEN(mtime)); ++ } else { ++ mtime = ds->value; } - -+ - if (!S_ISDIR(sce->st.st_mode)) return HANDLER_GO_ON; +- if (!S_ISDIR(sce->st.st_mode)) return HANDLER_GO_ON; - ++ ++ if (HANDLER_FINISHED == http_response_handle_cachable(srv, con, mtime)) { ++ return HANDLER_FINISHED; ++ } + if (http_list_directory(srv, con, p, con->physical.path)) { /* dirlisting failed */ @@ -19722,7 +19540,7 @@ /* not found */ return HANDLER_FINISHED; } -@@ -876,13 +881,13 @@ +@@ -876,13 +910,13 @@ int mod_dirlisting_plugin_init(plugin *p) { p->version = LIGHTTPD_VERSION_ID; p->name = buffer_init_string("dirlisting"); @@ -19739,7 +19557,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_evasive.c 2006-01-04 15:24:51.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_evasive.c 2006-01-04 15:24:51.000000000 +0200 +++ lighttpd-1.4.12/src/mod_evasive.c 2006-07-11 22:07:53.000000000 +0300 @@ -31,100 +31,97 @@ @@ -19917,7 +19735,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_evhost.c 2005-08-17 10:42:03.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_evhost.c 2005-08-17 10:42:03.000000000 +0300 +++ lighttpd-1.4.12/src/mod_evhost.c 2006-07-11 22:07:51.000000000 +0300 @@ -7,10 +7,12 @@ #include "response.h" @@ -20291,7 +20109,7 @@ return 0; } ---- lighttpd-1.4.11/src/mod_expire.c 2005-11-03 09:52:13.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_expire.c 2005-11-03 09:52:13.000000000 +0200 +++ lighttpd-1.4.12/src/mod_expire.c 2006-07-11 22:07:52.000000000 +0300 @@ -12,8 +12,8 @@ #include "stat_cache.h" @@ -20700,7 +20518,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_fastcgi.c 2006-03-09 13:18:39.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_fastcgi.c 2006-03-09 13:18:39.000000000 +0200 +++ lighttpd-1.4.12/src/mod_fastcgi.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,5 +1,4 @@ #include @@ -24688,7 +24506,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_flv_streaming.c 2006-03-07 14:06:26.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_flv_streaming.c 2006-03-07 14:06:26.000000000 +0200 +++ lighttpd-1.4.12/src/mod_flv_streaming.c 2006-07-11 22:07:52.000000000 +0300 @@ -23,35 +23,35 @@ @@ -24962,9 +24780,18 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_indexfile.c 2005-09-30 01:08:53.000000000 +0300 -+++ lighttpd-1.4.12/src/mod_indexfile.c 2006-07-11 22:07:53.000000000 +0300 -@@ -20,51 +20,51 @@ +--- ../lighttpd-1.4.11/src/mod_indexfile.c 2005-09-30 01:08:53.000000000 +0300 ++++ lighttpd-1.4.12/src/mod_indexfile.c 2006-07-15 22:43:21.000000000 +0300 +@@ -12,6 +12,8 @@ + + #include "stat_cache.h" + ++#include "sys-strings.h" ++#include "sys-files.h" + /* plugin config for all request/connections */ + + typedef struct { +@@ -20,51 +22,51 @@ typedef struct { PLUGIN_DATA; @@ -25030,7 +24857,7 @@ return HANDLER_GO_ON; } -@@ -73,131 +73,128 @@ +@@ -73,131 +75,139 @@ SETDEFAULTS_FUNC(mod_indexfile_set_defaults) { plugin_data *p = p_d; size_t i = 0; @@ -25127,12 +24954,22 @@ + mod_indexfile_patch_connection(srv, con, p); - ++ ++ /* is the physical-path really a dir ? */ ++ if (HANDLER_ERROR == stat_cache_get_entry(srv, con, con->physical.path, &sce)) { ++ return HANDLER_GO_ON; ++ } ++ ++ if (!S_ISDIR(sce->st.st_mode)) { ++ return HANDLER_GO_ON; ++ } + if (con->conf.log_request_handling) { log_error_write(srv, __FILE__, __LINE__, "s", "-- handling the request as Indexfile"); log_error_write(srv, __FILE__, __LINE__, "sb", "URI :", con->uri.path); } - ++ + /* indexfile */ for (k = 0; k < p->conf.indexfiles->used; k++) { @@ -25146,6 +24983,7 @@ buffer_copy_string_buffer(p->tmp_buf, con->physical.doc_root); } else { buffer_copy_string_buffer(p->tmp_buf, con->physical.path); ++ PATHNAME_APPEND_SLASH(p->tmp_buf); } buffer_append_string_buffer(p->tmp_buf, ds->value); - @@ -25198,7 +25036,7 @@ /* not found */ return HANDLER_GO_ON; } -@@ -207,13 +204,13 @@ +@@ -207,13 +217,13 @@ int mod_indexfile_plugin_init(plugin *p) { p->version = LIGHTTPD_VERSION_ID; p->name = buffer_init_string("indexfile"); @@ -25215,7 +25053,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_mysql_vhost.c 2006-01-14 20:35:10.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_mysql_vhost.c 2006-01-14 20:35:10.000000000 +0200 +++ lighttpd-1.4.12/src/mod_mysql_vhost.c 2006-07-11 22:07:52.000000000 +0300 @@ -1,13 +1,18 @@ -#include @@ -25729,8 +25567,8 @@ return 0; } #else ---- lighttpd-1.4.11/src/mod_proxy.c 2006-01-31 13:01:22.000000000 +0200 -+++ lighttpd-1.4.12/src/mod_proxy.c 2006-07-11 22:07:52.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_proxy.c 2006-01-31 13:01:22.000000000 +0200 ++++ lighttpd-1.4.12/src/mod_proxy.c 2006-07-15 22:43:21.000000000 +0300 @@ -1,6 +1,5 @@ #include @@ -25757,7 +25595,7 @@ #define data_proxy data_fastcgi #define data_proxy_init data_fastcgi_init -@@ -38,16 +42,16 @@ +@@ -38,22 +42,25 @@ #define PROXY_RETRY_TIMEOUT 60 /** @@ -25778,7 +25616,16 @@ * TODO: - delay upstream read if write_queue is too large * (to prevent memory eating, like in apache). Shoud be * configurable). -@@ -66,26 +70,31 @@ + * - persistent connection with upstream servers + * - HTTP/1.1 + */ ++ ++ ++ + typedef enum { + PROXY_BALANCE_UNSET, + PROXY_BALANCE_FAIR, +@@ -66,26 +73,33 @@ int debug; proxy_balance_t balance; @@ -25794,6 +25641,8 @@ buffer *balance_buf; - + ++ http_resp *resp; ++ + array *ignore_headers; + plugin_config **config_storage; @@ -25814,13 +25663,13 @@ + PROXY_STATE_CONNECT, + PROXY_STATE_PREPARE_WRITE, + PROXY_STATE_WRITE, -+ PROXY_STATE_RESPONSE_HEADER, -+ PROXY_STATE_RESPONSE_CONTENT, ++ PROXY_STATE_RESPONSE_HEADER, ++ PROXY_STATE_RESPONSE_CONTENT, + PROXY_STATE_ERROR } proxy_connection_state_t; enum { PROXY_STDOUT, PROXY_END_REQUEST }; -@@ -93,19 +102,20 @@ +@@ -93,19 +107,17 @@ typedef struct { proxy_connection_state_t state; time_t state_timestamp; @@ -25828,13 +25677,12 @@ + data_proxy *host; - -+ - buffer *response; - buffer *response_header; +- buffer *response; +- buffer *response_header; chunkqueue *wb; - -+ chunkqueue *rb; ++ chunkqueue *rb; + int fd; /* fd to the proxy process */ int fde_ndx; /* index into the fd-event buffer */ @@ -25845,7 +25693,7 @@ connection *remote_conn; /* dump pointer */ plugin_data *plugin_data; /* dump pointer */ } handler_ctx; -@@ -116,21 +126,22 @@ +@@ -116,69 +128,88 @@ static handler_ctx * handler_ctx_init() { handler_ctx * hctx; @@ -25858,12 +25706,11 @@ hctx->state = PROXY_STATE_INIT; hctx->host = NULL; - -+ - hctx->response = buffer_init(); - hctx->response_header = buffer_init(); +- hctx->response = buffer_init(); +- hctx->response_header = buffer_init(); hctx->wb = chunkqueue_init(); -+ hctx->rb = chunkqueue_init(); ++ hctx->rb = chunkqueue_init(); hctx->fd = -1; hctx->fde_ndx = -1; @@ -25872,12 +25719,12 @@ return hctx; } -@@ -138,47 +149,70 @@ - buffer_free(hctx->response); - buffer_free(hctx->response_header); + static void handler_ctx_free(handler_ctx *hctx) { +- buffer_free(hctx->response); +- buffer_free(hctx->response_header); chunkqueue_free(hctx->wb); - -+ chunkqueue_free(hctx->rb); ++ chunkqueue_free(hctx->rb); + free(hctx); } @@ -25896,19 +25743,21 @@ + p = calloc(1, sizeof(*p)); - +- p->parse_response = buffer_init(); + - p->parse_response = buffer_init(); p->balance_buf = buffer_init(); - + p->ignore_headers = array_init(); ++ p->resp = http_response_init(); + + for (i = 0; hop2hop_headers[i]; i++) { + data_string *ds; + -+ if (NULL == (ds = (data_string *)array_get_unused_element(p->ignore_headers, TYPE_STRING))) { ++ if (NULL == (ds = (data_string *)array_get_unused_element(p->ignore_headers, TYPE_STRING))) { + ds = data_string_init(); + } + ++ buffer_copy_string(ds->key, hop2hop_headers[i]); + buffer_copy_string(ds->value, hop2hop_headers[i]); + array_insert_unique(p->ignore_headers, (data_unset *)ds); + } @@ -25923,10 +25772,9 @@ + UNUSED(srv); - buffer_free(p->parse_response); - buffer_free(p->balance_buf); +- buffer_free(p->parse_response); +- buffer_free(p->balance_buf); - -+ if (p->config_storage) { size_t i; for (i = 0; i < srv->config_context->used; i++) { @@ -25946,7 +25794,9 @@ } - + -+ free(p->ignore_headers); ++ array_free(p->ignore_headers); ++ buffer_free(p->balance_buf); ++ http_response_free(p->resp); + free(p); - @@ -25954,7 +25804,7 @@ return HANDLER_GO_ON; } -@@ -186,37 +220,38 @@ +@@ -186,37 +217,38 @@ plugin_data *p = p_d; data_unset *du; size_t i = 0; @@ -26003,16 +25853,17 @@ if (buffer_is_empty(p->balance_buf)) { s->balance = PROXY_BALANCE_FAIR; } else if (buffer_is_equal_string(p->balance_buf, CONST_STR_LEN("fair"))) { -@@ -226,7 +261,7 @@ +@@ -226,99 +258,99 @@ } else if (buffer_is_equal_string(p->balance_buf, CONST_STR_LEN("hash"))) { s->balance = PROXY_BALANCE_HASH; } else { - log_error_write(srv, __FILE__, __LINE__, "sb", +- "proxy.balance has to be one of: fair, round-robin, hash, but not:", p->balance_buf); + log_error_write(srv, __FILE__, __LINE__, "sb", - "proxy.balance has to be one of: fair, round-robin, hash, but not:", p->balance_buf); ++ "proxy.balance has to be one of: fair, round-robin, hash, but not:", p->balance_buf); return HANDLER_ERROR; } -@@ -234,91 +269,91 @@ + if (NULL != (du = array_get_element(ca, "proxy.server"))) { size_t j; data_array *da = (data_array *)du; @@ -26141,7 +25992,7 @@ array_insert_unique(dfa->value, (data_unset *)df); array_insert_unique(s->extensions, (data_unset *)dfa); } else { -@@ -328,19 +363,19 @@ +@@ -328,19 +360,19 @@ } } } @@ -26165,7 +26016,7 @@ if (hctx->fd != -1) { fdevent_event_del(srv->ev, &(hctx->fde_ndx), hctx->fd); fdevent_unregister(srv->ev, hctx->fd); -@@ -348,47 +383,56 @@ +@@ -348,47 +380,56 @@ close(hctx->fd); srv->cur_fds--; } @@ -26202,14 +26053,14 @@ if (-1 == connect(proxy_fd, proxy_addr, servlen)) { - if (errno == EINPROGRESS || errno == EALREADY) { +#ifdef _WIN32 -+ errno = WSAGetLastError(); ++ errno = WSAGetLastError(); +#endif -+ switch(errno) { ++ switch(errno) { +#ifdef _WIN32 -+ case WSAEWOULDBLOCK: ++ case WSAEWOULDBLOCK: +#endif -+ case EINPROGRESS: -+ case EALREADY: ++ case EINPROGRESS: ++ case EALREADY: if (p->conf.debug) { - log_error_write(srv, __FILE__, __LINE__, "sd", + log_error_write(srv, __FILE__, __LINE__, "sd", @@ -26230,14 +26081,56 @@ return -1; } } -+ fprintf(stderr, "%s.%d: connected fd = %d\r\n", __FILE__, __LINE__, proxy_fd); ++ fprintf(stderr, "%s.%d: connected fd = %d\r\n", __FILE__, __LINE__, proxy_fd); if (p->conf.debug) { - log_error_write(srv, __FILE__, __LINE__, "sd", + log_error_write(srv, __FILE__, __LINE__, "sd", "connect succeeded: ", proxy_fd); } -@@ -422,25 +466,26 @@ +@@ -396,51 +437,52 @@ + } + + void proxy_set_header(connection *con, const char *key, const char *value) { +- data_string *ds_dst; ++ data_string *ds_dst; + +- if (NULL == (ds_dst = (data_string *)array_get_unused_element(con->request.headers, TYPE_STRING))) { +- ds_dst = data_string_init(); +- } +- +- buffer_copy_string(ds_dst->key, key); +- buffer_copy_string(ds_dst->value, value); +- array_insert_unique(con->request.headers, (data_unset *)ds_dst); ++ if (NULL == (ds_dst = (data_string *)array_get_unused_element(con->request.headers, TYPE_STRING))) { ++ ds_dst = data_string_init(); ++ } ++ ++ buffer_copy_string(ds_dst->key, key); ++ buffer_copy_string(ds_dst->value, value); ++ array_insert_unique(con->request.headers, (data_unset *)ds_dst); + } + + void proxy_append_header(connection *con, const char *key, const char *value) { +- data_string *ds_dst; ++ data_string *ds_dst; + +- if (NULL == (ds_dst = (data_string *)array_get_unused_element(con->request.headers, TYPE_STRING))) { +- ds_dst = data_string_init(); +- } +- +- buffer_copy_string(ds_dst->key, key); +- buffer_append_string(ds_dst->value, value); +- array_insert_unique(con->request.headers, (data_unset *)ds_dst); ++ if (NULL == (ds_dst = (data_string *)array_get_unused_element(con->request.headers, TYPE_STRING))) { ++ ds_dst = data_string_init(); ++ } ++ ++ buffer_copy_string(ds_dst->key, key); ++ buffer_append_string(ds_dst->value, value); ++ array_insert_unique(con->request.headers, (data_unset *)ds_dst); + } + static int proxy_create_env(server *srv, handler_ctx *hctx) { size_t i; @@ -26270,7 +26163,7 @@ !buffer_is_empty(con->request.http_host)) { proxy_set_header(con, "X-Host", con->request.http_host->ptr); } -@@ -449,24 +494,26 @@ +@@ -449,24 +491,25 @@ /* request header */ for (i = 0; i < con->request.headers->used; i++) { data_string *ds; @@ -26278,19 +26171,24 @@ + ds = (data_string *)con->request.headers->data[i]; - -+ - if (ds->value->used && ds->key->used) { +- if (ds->value->used && ds->key->used) { - if (buffer_is_equal_string(ds->key, CONST_STR_LEN("Connection"))) continue; - +- buffer_append_string_buffer(b, ds->key); +- BUFFER_APPEND_STRING_CONST(b, ": "); +- buffer_append_string_buffer(b, ds->value); +- BUFFER_APPEND_STRING_CONST(b, "\r\n"); +- } + -+ /* don't copy hop-to-hop headers */ -+ if (array_get_element(p->ignore_headers, ds->key->ptr)) continue; ++ if (buffer_is_empty(ds->value) || buffer_is_empty(ds->key)) continue; + - buffer_append_string_buffer(b, ds->key); - BUFFER_APPEND_STRING_CONST(b, ": "); - buffer_append_string_buffer(b, ds->value); - BUFFER_APPEND_STRING_CONST(b, "\r\n"); - } ++ if (!buffer_is_equal_string(ds->key, CONST_STR_LEN("Connection"))) continue; ++ if (!buffer_is_equal_string(ds->key, CONST_STR_LEN("Keep-Alive"))) continue; ++ ++ buffer_append_string_buffer(b, ds->key); ++ BUFFER_APPEND_STRING_CONST(b, ": "); ++ buffer_append_string_buffer(b, ds->value); ++ BUFFER_APPEND_STRING_CONST(b, "\r\n"); } - + @@ -26304,7 +26202,7 @@ if (con->request.content_length) { chunkqueue *req_cq = con->request_content_queue; chunk *req_c; -@@ -479,7 +526,7 @@ +@@ -479,7 +522,7 @@ /* we announce toWrite octects * now take all the request_content chunk that we need to fill this request @@ -26313,7 +26211,7 @@ switch (req_c->type) { case FILE_CHUNK: -@@ -507,223 +554,125 @@ +@@ -507,223 +550,161 @@ req_c->offset += weHave; req_cq->bytes_out += weHave; @@ -26351,7 +26249,7 @@ - - UNUSED(srv); +static void chunkqueue_print(chunkqueue *cq) { -+ chunk *c; ++ chunk *c; - /* \r\n -> \0\0 */ - @@ -26433,13 +26331,12 @@ - - array_insert_unique(con->response.headers, (data_unset *)ds); - } -- } ++ for (c = cq->first; c; c = c->next) { ++ fprintf(stderr, "%s", c->mem->ptr + c->offset); + } - - return 0; -+ for (c = cq->first; c; c = c->next) { -+ fprintf(stderr, "%s", c->mem->ptr + c->offset); -+ } -+ fprintf(stderr, "\r\n"); ++ fprintf(stderr, "\r\n"); } - @@ -26457,17 +26354,41 @@ - log_error_write(srv, __FILE__, __LINE__, "sd", - "ioctl failed: ", - proxy_fd); -- return -1; -- } -- -+ chunkqueue *next_queue = NULL; -+ chunk *c = NULL; ++ chunkqueue *next_queue = NULL; ++ chunk *c = NULL; ++ ++ switch(srv->network_backend_read(srv, con, proxy_fd, hctx->rb)) { ++ case NETWORK_STATUS_SUCCESS: ++ /* we got content */ ++ break; ++ case NETWORK_STATUS_WAIT_FOR_EVENT: ++ /* the ioctl will return WAIT_FOR_EVENT on a read */ ++ if (0 == con->file_started) return -1; ++ case NETWORK_STATUS_CONNECTION_CLOSE: ++ /* we are done, get out of here */ ++ con->file_finished = 1; ++ ++ /* close the chunk-queue with a empty chunk */ ++ ++ return 1; ++ default: ++ /* oops */ + return -1; + } + ++ /* looks like we got some content ++ * ++ * split off the header from the incoming stream ++ */ - if (p->conf.debug) { - log_error_write(srv, __FILE__, __LINE__, "sd", - "proxy - have to read:", b); - } -- ++ if (hctx->state == PROXY_STATE_RESPONSE_HEADER) { ++ size_t i; ++ int have_content_length = 0; + - if (b > 0) { - if (hctx->response->used == 0) { - /* avoid too small buffer */ @@ -26494,7 +26415,8 @@ - log_error_write(srv, __FILE__, __LINE__, "sdsbs", - "demux: Response buffer len", hctx->response->used, ":", hctx->response, ":"); -#endif -- ++ http_response_reset(p->resp); + - if (0 == con->got_response) { - con->got_response = 1; - buffer_prepare_copy(hctx->response_header, 128); @@ -26520,111 +26442,116 @@ - if (con->request.http_version == HTTP_VERSION_1_1 && - !(con->parsed_response & HTTP_CONTENT_LENGTH)) { - con->response.transfer_encoding = HTTP_TRANSFER_ENCODING_CHUNKED; -- } ++ /* the response header is not fully received yet, ++ * ++ * extract the http-response header from the rb-cq ++ */ ++ switch (http_response_parse_cq(hctx->rb, p->resp)) { ++ case PARSE_ERROR: ++ /* parsing failed */ ++ ++ con->http_status = 502; /* Bad Gateway */ ++ return 1; ++ case PARSE_NEED_MORE: ++ return 0; ++ case PARSE_SUCCESS: ++ con->http_status = p->resp->status; ++ ++ chunkqueue_remove_finished_chunks(hctx->rb); ++ ++ /* copy the http-headers */ ++ for (i = 0; i < p->resp->headers->used; i++) { ++ const char *ign[] = { "Status", "Connection", NULL }; ++ size_t j; ++ data_string *ds; ++ ++ data_string *header = (data_string *)p->resp->headers->data[i]; ++ ++ /* some headers are ignored by default */ ++ for (j = 0; ign[j]; j++) { ++ if (0 == strcasecmp(ign[j], header->key->ptr)) break; + } - - con->file_started = 1; - if (blen) { - http_chunk_append_mem(srv, con, c + 4, blen + 1); - joblist_append(srv, con); -- } ++ if (ign[j]) continue; ++ ++ if (0 == buffer_caseless_compare(CONST_BUF_LEN(header->key), CONST_STR_LEN("Location"))) { ++ /* CGI/1.1 rev 03 - 7.2.1.2 */ ++ if (con->http_status == 0) con->http_status = 302; ++ } else if (0 == buffer_caseless_compare(CONST_BUF_LEN(header->key), CONST_STR_LEN("Content-Length"))) { ++ have_content_length = 1; + } - hctx->response->used = 0; -- } ++ ++ if (NULL == (ds = (data_string *)array_get_unused_element(con->response.headers, TYPE_STRING))) { ++ ds = data_response_init(); ++ } ++ buffer_copy_string_buffer(ds->key, header->key); ++ buffer_copy_string_buffer(ds->value, header->value); ++ ++ array_insert_unique(con->response.headers, (data_unset *)ds); + } - } else { - http_chunk_append_mem(srv, con, hctx->response->ptr, hctx->response->used); - joblist_append(srv, con); - hctx->response->used = 0; -- } ++ ++ con->file_started = 1; ++ ++ if (con->request.http_version == HTTP_VERSION_1_1 && ++ !have_content_length) { ++ con->response.transfer_encoding = HTTP_TRANSFER_ENCODING_CHUNKED; ++ } ++ ++ hctx->state = PROXY_STATE_RESPONSE_CONTENT; ++ break; + } - - } else { - /* reading from upstream done */ -+ switch(srv->network_backend_read(srv, con, proxy_fd, hctx->rb)) { -+ case NETWORK_STATUS_SUCCESS: -+ /* we got content */ -+ break; -+ case NETWORK_STATUS_CONNECTION_CLOSE: -+ /* we are done, get out of here */ - con->file_finished = 1; +- con->file_finished = 1; - -+ -+ /* close the chunk-queue with a empty chunk */ - http_chunk_append_mem(srv, con, NULL, 0); - joblist_append(srv, con); +- http_chunk_append_mem(srv, con, NULL, 0); +- joblist_append(srv, con); - - fin = 1; + } +- +- return fin; + -+ return 1; -+ default: -+ /* oops */ -+ return -1; -+ } -+ -+ /* looks like we got some content -+ * -+ * split off the header from the incoming stream -+ */ -+ -+ if (hctx->state == PROXY_STATE_RESPONSE_HEADER) { -+ http_resp *resp = http_response_init(); -+ -+ /* the response header is not fully received yet, -+ * -+ * extract the http-response header from the rb-cq -+ */ -+ fprintf(stderr, "%s.%d: network-read\r\n", __FILE__, __LINE__); -+ chunkqueue_print(hctx->rb); -+ -+ switch (http_response_parse_cq(hctx->rb, resp)) { -+ case PARSE_ERROR: -+ /* parsing failed */ -+ -+ con->http_status = 502; /* Bad Gateway */ -+ return 1; -+ case PARSE_NEED_MORE: -+ return 0; -+ case PARSE_SUCCESS: -+ con->http_status = resp->status; -+ -+ fprintf(stderr, "%s.%d: parsing done\r\n", __FILE__, __LINE__); -+ chunkqueue_print(hctx->rb); -+ -+ con->file_started = 1; -+ -+ hctx->state = PROXY_STATE_RESPONSE_CONTENT; -+ break; -+ } -+ } -+ -+ /* FIXME: pass the response-header to the other plugins to -+ * setup the filter-queue -+ * -+ * - use next-queue instead of con->write_queue -+ */ ++ /* FIXME: pass the response-header to the other plugins to ++ * setup the filter-queue ++ * ++ * - use next-queue instead of con->write_queue ++ */ + -+ next_queue = con->write_queue; ++ next_queue = con->write_queue; + -+ assert(hctx->state == PROXY_STATE_RESPONSE_CONTENT); ++ assert(hctx->state == PROXY_STATE_RESPONSE_CONTENT); + -+ /* FIXME: if we have a content-length or chunked-encoding -+ * handle it. -+ * -+ * for now we wait for EOF on the socket */ ++ /* FIXME: if we have a content-length or chunked-encoding ++ * handle it. ++ * ++ * for now we wait for EOF on the socket */ + -+ /* copy the content to the next cq */ -+ for (c = hctx->rb->first; c; c = c->next) { -+ http_chunk_append_mem(srv, con, c->mem->ptr + c->offset, c->mem->used - c->offset); ++ /* copy the content to the next cq */ ++ for (c = hctx->rb->first; c; c = c->next) { ++ http_chunk_append_mem(srv, con, c->mem->ptr + c->offset, c->mem->used - c->offset); + -+ c->offset = c->mem->used - 1; - } -- -- return fin; ++ c->offset = c->mem->used - 1; ++ } + -+ chunkqueue_remove_finished_chunks(hctx->rb); ++ chunkqueue_remove_finished_chunks(hctx->rb); ++ joblist_append(srv, con); + + return 0; } -@@ -731,12 +680,12 @@ +@@ -731,12 +712,12 @@ data_proxy *host= hctx->host; plugin_data *p = hctx->plugin_data; connection *con = hctx->remote_conn; @@ -26633,15 +26560,16 @@ int ret; - - if (!host || +- (!host->host->used || !host->port)) return -1; +- + + if (!host || - (!host->host->used || !host->port)) return -1; -- ++ (!host->host->used || !host->port)) return -1; + switch(hctx->state) { case PROXY_STATE_INIT: if (-1 == (hctx->fd = socket(AF_INET, SOCK_STREAM, 0))) { -@@ -744,19 +693,19 @@ +@@ -744,19 +725,19 @@ return HANDLER_ERROR; } hctx->fde_ndx = -1; @@ -26667,7 +26595,7 @@ case PROXY_STATE_CONNECT: /* try to finish the connect() */ if (hctx->state == PROXY_STATE_INIT) { -@@ -764,16 +713,16 @@ +@@ -764,16 +745,16 @@ switch (proxy_establish_connection(srv, hctx)) { case 1: proxy_set_state(srv, hctx, PROXY_STATE_CONNECT); @@ -26688,7 +26616,7 @@ return HANDLER_ERROR; default: /* everything is ok, go on */ -@@ -782,152 +731,152 @@ +@@ -782,152 +763,152 @@ } else { int socket_error; socklen_t socket_error_len = sizeof(socket_error); @@ -26720,7 +26648,6 @@ - log_error_write(srv, __FILE__, __LINE__, "s", "proxy - connect - delayed success"); + log_error_write(srv, __FILE__, __LINE__, "s", "proxy - connect - delayed success"); } -+ fprintf(stderr, "%s.%d: connected fd = %d\r\n", __FILE__, __LINE__, hctx->fd); } - + @@ -26749,13 +26676,13 @@ - } else { - fdevent_event_add(srv->ev, &(hctx->fde_ndx), hctx->fd, FDEVENT_OUT); + switch(ret) { -+ case NETWORK_STATUS_FATAL_ERROR: ++ case NETWORK_STATUS_FATAL_ERROR: + log_error_write(srv, __FILE__, __LINE__, "ssd", "write failed:", strerror(errno), errno); - return HANDLER_WAIT_FOR_EVENT; - } + return HANDLER_ERROR; -+ case NETWORK_STATUS_WAIT_FOR_EVENT: ++ case NETWORK_STATUS_WAIT_FOR_EVENT: + + fdevent_event_add(srv->ev, &(hctx->fde_ndx), hctx->fd, FDEVENT_OUT); + @@ -26778,6 +26705,7 @@ + return HANDLER_WAIT_FOR_EVENT; - case PROXY_STATE_READ: ++ case PROXY_STATE_RESPONSE_CONTENT: + case PROXY_STATE_RESPONSE_HEADER: /* waiting for a response */ + @@ -26895,7 +26823,7 @@ */ return HANDLER_WAIT_FOR_FD; -@@ -938,7 +887,7 @@ +@@ -938,7 +919,7 @@ default: break; } @@ -26904,7 +26832,7 @@ if (con->file_started == 1) { return HANDLER_FINISHED; } else { -@@ -951,13 +900,14 @@ +@@ -951,13 +932,14 @@ handler_ctx *hctx = ctx; connection *con = hctx->remote_conn; plugin_data *p = hctx->plugin_data; @@ -26914,8 +26842,8 @@ + if ((revents & FDEVENT_IN) && - hctx->state == PROXY_STATE_READ) { -+ (hctx->state == PROXY_STATE_RESPONSE_HEADER || -+ hctx->state == PROXY_STATE_RESPONSE_CONTENT)) { ++ (hctx->state == PROXY_STATE_RESPONSE_HEADER || ++ hctx->state == PROXY_STATE_RESPONSE_CONTENT)) { if (p->conf.debug) { - log_error_write(srv, __FILE__, __LINE__, "sd", @@ -26923,11 +26851,16 @@ "proxy: fdevent-in", hctx->state); } -@@ -966,10 +916,10 @@ +@@ -965,11 +947,15 @@ + case 0: break; case 1: ++ log_error_write(srv, __FILE__, __LINE__, "sd", ++ "proxy: request done", hctx->fd); hctx->host->usage--; - ++ ++ http_chunk_append_mem(srv, con, NULL, 0); + /* we are done */ proxy_connection_close(srv, hctx); @@ -26936,7 +26869,7 @@ joblist_append(srv, con); return HANDLER_FINISHED; case -1: -@@ -982,53 +932,53 @@ +@@ -982,53 +968,53 @@ /* response might have been already started, kill the connection */ connection_set_state(srv, con, CON_STATE_ERROR); } @@ -27004,7 +26937,7 @@ return HANDLER_FINISHED; } -@@ -1038,13 +988,13 @@ +@@ -1038,13 +1024,13 @@ joblist_append(srv, con); } else if (revents & FDEVENT_ERR) { /* kill all connections to the proxy process */ @@ -27020,7 +26953,7 @@ return HANDLER_FINISHED; } -@@ -1058,44 +1008,49 @@ +@@ -1058,44 +1044,48 @@ buffer *fn; data_array *extension = NULL; size_t path_info_offset; @@ -27048,7 +26981,6 @@ s_len = fn->used - 1; - - -+ + path_info_offset = 0; @@ -27083,7 +27015,7 @@ if (0 != (pi_offset = strchr(fn->ptr + ct_len + 1, '/'))) { path_info_offset = pi_offset - fn->ptr; } -@@ -1106,12 +1061,14 @@ +@@ -1106,12 +1096,14 @@ break; } } @@ -27100,7 +27032,7 @@ log_error_write(srv, __FILE__, __LINE__, "s", "proxy - ext found"); } -@@ -1120,34 +1077,34 @@ +@@ -1120,34 +1112,34 @@ /* hash balancing */ if (p->conf.debug) { @@ -27148,7 +27080,7 @@ } } -@@ -1155,19 +1112,20 @@ +@@ -1155,19 +1147,20 @@ case PROXY_BALANCE_FAIR: /* fair balancing */ if (p->conf.debug) { @@ -27179,7 +27111,7 @@ } } -@@ -1175,89 +1133,100 @@ +@@ -1175,89 +1168,100 @@ case PROXY_BALANCE_RR: /* round robin */ if (p->conf.debug) { @@ -27340,7 +27272,7 @@ proxy_connection_close(srv, con->plugin_ctx[p->id]); return HANDLER_GO_ON; -@@ -1276,11 +1245,11 @@ +@@ -1276,11 +1280,11 @@ size_t i, n, k; for (i = 0; i < srv->config_context->used; i++) { plugin_config *s = p->config_storage[i]; @@ -27355,7 +27287,7 @@ for (k = 0; k < s->extensions->used; k++) { data_array *extension = (data_array *)s->extensions->data[k]; -@@ -1290,8 +1259,8 @@ +@@ -1290,8 +1294,8 @@ if (!host->is_disabled || srv->cur_ts - host->disable_ts < 5) continue; @@ -27366,7 +27298,7 @@ "proxy - re-enabled:", host->host, host->port); -@@ -1317,8 +1286,8 @@ +@@ -1317,8 +1321,8 @@ p->handle_uri_clean = mod_proxy_check_extension; p->handle_subrequest = mod_proxy_handle_subrequest; p->handle_trigger = mod_proxy_trigger; @@ -27377,7 +27309,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_redirect.c 2006-02-08 15:38:06.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_redirect.c 2006-02-08 15:38:06.000000000 +0200 +++ lighttpd-1.4.12/src/mod_redirect.c 2006-07-11 22:07:52.000000000 +0300 @@ -22,35 +22,35 @@ PLUGIN_DATA; @@ -27700,7 +27632,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_rewrite.c 2005-09-29 20:59:10.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_rewrite.c 2005-09-29 20:59:10.000000000 +0300 +++ lighttpd-1.4.12/src/mod_rewrite.c 2006-07-11 22:07:51.000000000 +0300 @@ -13,24 +13,8 @@ #endif @@ -28234,7 +28166,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_rrdtool.c 2005-08-22 01:52:24.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_rrdtool.c 2005-08-22 01:52:24.000000000 +0300 +++ lighttpd-1.4.12/src/mod_rrdtool.c 2006-07-11 22:07:52.000000000 +0300 @@ -5,7 +5,6 @@ #include @@ -28769,7 +28701,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_scgi.c 2006-03-04 17:15:26.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_scgi.c 2006-03-04 17:15:26.000000000 +0200 +++ lighttpd-1.4.12/src/mod_scgi.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,5 +1,4 @@ #include @@ -32285,7 +32217,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_secure_download.c 2005-12-14 14:37:29.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_secure_download.c 2005-12-14 14:37:29.000000000 +0200 +++ lighttpd-1.4.12/src/mod_secure_download.c 2006-07-11 22:07:51.000000000 +0300 @@ -25,7 +25,7 @@ #ifdef USE_OPENSSL @@ -32640,7 +32572,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_setenv.c 2006-01-14 20:33:12.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_setenv.c 2006-01-14 20:33:12.000000000 +0200 +++ lighttpd-1.4.12/src/mod_setenv.c 2006-07-11 22:07:53.000000000 +0300 @@ -18,25 +18,25 @@ typedef struct { @@ -32916,7 +32848,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_simple_vhost.c 2005-11-18 15:16:13.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_simple_vhost.c 2005-11-18 15:16:13.000000000 +0200 +++ lighttpd-1.4.12/src/mod_simple_vhost.c 2006-07-11 22:07:52.000000000 +0300 @@ -10,6 +10,8 @@ @@ -33257,7 +33189,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_skeleton.c 2005-10-02 18:30:51.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_skeleton.c 2005-10-02 18:30:51.000000000 +0300 +++ lighttpd-1.4.12/src/mod_skeleton.c 2006-07-11 22:07:51.000000000 +0300 @@ -14,13 +14,13 @@ @@ -33497,7 +33429,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_sql_vhost_core.c 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_sql_vhost_core.c 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/src/mod_sql_vhost_core.c 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,209 @@ +#include @@ -33709,7 +33641,7 @@ + return 0; +} + ---- lighttpd-1.4.11/src/mod_sql_vhost_core.h 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_sql_vhost_core.h 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/src/mod_sql_vhost_core.h 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,49 @@ +#ifndef _MOD_SQL_VHOST_CORE_H_ @@ -33761,7 +33693,7 @@ + + +#endif ---- lighttpd-1.4.11/src/mod_ssi.c 2006-03-04 17:09:48.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_ssi.c 2006-03-04 17:09:48.000000000 +0200 +++ lighttpd-1.4.12/src/mod_ssi.c 2006-07-11 22:07:53.000000000 +0300 @@ -6,7 +6,6 @@ #include @@ -34931,7 +34863,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_ssi.h 2005-08-11 01:26:39.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_ssi.h 2005-08-11 01:26:39.000000000 +0300 +++ lighttpd-1.4.12/src/mod_ssi.h 2006-07-11 22:07:53.000000000 +0300 @@ -19,23 +19,23 @@ @@ -34966,7 +34898,7 @@ } plugin_data; int ssi_eval_expr(server *srv, connection *con, plugin_data *p, const char *expr); ---- lighttpd-1.4.11/src/mod_ssi_expr.c 2005-08-11 01:26:48.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_ssi_expr.c 2005-08-11 01:26:48.000000000 +0300 +++ lighttpd-1.4.12/src/mod_ssi_expr.c 2006-07-11 22:07:52.000000000 +0300 @@ -11,9 +11,9 @@ const char *input; @@ -35347,7 +35279,7 @@ +#endif return context.val.bo; } ---- lighttpd-1.4.11/src/mod_ssi_expr.h 2005-08-11 01:26:48.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_ssi_expr.h 2005-08-11 01:26:48.000000000 +0300 +++ lighttpd-1.4.12/src/mod_ssi_expr.h 2006-07-11 22:07:52.000000000 +0300 @@ -5,16 +5,16 @@ @@ -35369,7 +35301,7 @@ void *srv; } ssi_ctx_t; ---- lighttpd-1.4.11/src/mod_ssi_exprparser.c 2005-10-03 00:40:25.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_ssi_exprparser.c 2005-10-03 00:40:25.000000000 +0300 +++ lighttpd-1.4.12/src/mod_ssi_exprparser.c 2006-07-11 22:08:02.000000000 +0300 @@ -18,10 +18,10 @@ /* Next is all token values, in a form suitable for use by makeheaders. @@ -35514,7 +35446,7 @@ ** ** This is what we do if the grammar does define ERROR: ** ---- lighttpd-1.4.11/src/mod_staticfile.c 2006-02-15 14:31:14.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_staticfile.c 2006-02-15 14:31:14.000000000 +0200 +++ lighttpd-1.4.12/src/mod_staticfile.c 2006-07-11 22:07:51.000000000 +0300 @@ -14,9 +14,11 @@ #include "http_chunk.h" @@ -36076,7 +36008,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_status.c 2006-01-10 21:45:32.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_status.c 2006-01-10 21:45:32.000000000 +0200 +++ lighttpd-1.4.12/src/mod_status.c 2006-07-11 22:07:53.000000000 +0300 @@ -4,7 +4,6 @@ #include @@ -37028,7 +36960,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_trigger_b4_dl.c 2005-09-23 22:53:55.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_trigger_b4_dl.c 2005-09-23 22:53:55.000000000 +0300 +++ lighttpd-1.4.12/src/mod_trigger_b4_dl.c 2006-07-11 22:07:51.000000000 +0300 @@ -24,18 +24,18 @@ @@ -37704,7 +37636,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_userdir.c 2005-10-28 16:48:28.000000000 +0300 +--- ../lighttpd-1.4.11/src/mod_userdir.c 2005-10-28 16:48:28.000000000 +0300 +++ lighttpd-1.4.12/src/mod_userdir.c 2006-07-11 22:07:52.000000000 +0300 @@ -10,6 +10,7 @@ #include "response.h" @@ -38013,7 +37945,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_usertrack.c 2006-01-31 15:01:20.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_usertrack.c 2006-01-31 15:01:20.000000000 +0200 +++ lighttpd-1.4.12/src/mod_usertrack.c 2006-07-11 22:07:53.000000000 +0300 @@ -24,44 +24,44 @@ @@ -38330,7 +38262,7 @@ + return 0; } ---- lighttpd-1.4.11/src/mod_webdav.c 2006-03-03 01:28:58.000000000 +0200 +--- ../lighttpd-1.4.11/src/mod_webdav.c 2006-03-03 01:28:58.000000000 +0200 +++ lighttpd-1.4.12/src/mod_webdav.c 2006-07-11 22:07:53.000000000 +0300 @@ -3,13 +3,10 @@ #include @@ -40195,7 +40127,7 @@ + return 0; } ---- lighttpd-1.4.11/src/network.c 2006-03-04 16:45:46.000000000 +0200 +--- ../lighttpd-1.4.11/src/network.c 2006-03-04 16:45:46.000000000 +0200 +++ lighttpd-1.4.12/src/network.c 2006-07-11 22:07:51.000000000 +0300 @@ -1,14 +1,14 @@ #include @@ -40953,7 +40885,7 @@ + } return ret; } ---- lighttpd-1.4.11/src/network.h 2005-08-11 01:26:42.000000000 +0300 +--- ../lighttpd-1.4.11/src/network.h 2005-08-11 01:26:42.000000000 +0300 +++ lighttpd-1.4.12/src/network.h 2006-07-11 22:07:51.000000000 +0300 @@ -3,7 +3,8 @@ @@ -40965,7 +40897,7 @@ int network_init(server *srv); int network_close(server *srv); ---- lighttpd-1.4.11/src/network_backends.h 2005-10-24 15:13:51.000000000 +0300 +--- ../lighttpd-1.4.11/src/network_backends.h 2005-10-24 15:13:51.000000000 +0300 +++ lighttpd-1.4.12/src/network_backends.h 2006-07-11 22:07:52.000000000 +0300 @@ -43,16 +43,52 @@ # define USE_AIX_SENDFILE @@ -41026,7 +40958,7 @@ #endif #endif ---- lighttpd-1.4.11/src/network_freebsd_sendfile.c 2005-10-22 12:28:18.000000000 +0300 +--- ../lighttpd-1.4.11/src/network_freebsd_sendfile.c 2005-10-22 12:28:18.000000000 +0300 +++ lighttpd-1.4.12/src/network_freebsd_sendfile.c 2006-07-11 22:07:52.000000000 +0300 @@ -26,142 +26,61 @@ @@ -41245,8 +41177,8 @@ } #endif ---- lighttpd-1.4.11/src/network_linux_sendfile.c 2006-02-15 20:02:36.000000000 +0200 -+++ lighttpd-1.4.12/src/network_linux_sendfile.c 2006-07-11 22:07:53.000000000 +0300 +--- ../lighttpd-1.4.11/src/network_linux_sendfile.c 2006-02-15 20:02:36.000000000 +0200 ++++ lighttpd-1.4.12/src/network_linux_sendfile.c 2006-07-15 22:43:21.000000000 +0300 @@ -26,122 +26,54 @@ /* on linux 2.4.29 + debian/ubuntu we have crashes if this is enabled */ #undef HAVE_POSIX_FADVISE @@ -41447,7 +41379,7 @@ if (c->offset == c->file.length) { chunk_finished = 1; -@@ -222,19 +154,19 @@ +@@ -222,24 +154,24 @@ c->file.fd = -1; } } @@ -41472,7 +41404,13 @@ break; } } ---- lighttpd-1.4.11/src/network_openssl.c 2005-11-17 14:53:29.000000000 +0200 + +- return chunks_written; ++ return NETWORK_STATUS_SUCCESS; + } + + #endif +--- ../lighttpd-1.4.11/src/network_openssl.c 2005-11-17 14:53:29.000000000 +0200 +++ lighttpd-1.4.12/src/network_openssl.c 2006-07-11 22:07:52.000000000 +0300 @@ -23,17 +23,87 @@ #include "log.h" @@ -41809,7 +41747,7 @@ chunks_written++; } ---- lighttpd-1.4.11/src/network_solaris_sendfilev.c 2005-10-22 12:28:27.000000000 +0300 +--- ../lighttpd-1.4.11/src/network_solaris_sendfilev.c 2005-10-22 12:28:27.000000000 +0300 +++ lighttpd-1.4.12/src/network_solaris_sendfilev.c 2006-07-11 22:07:53.000000000 +0300 @@ -29,114 +29,34 @@ #endif @@ -42030,8 +41968,8 @@ } #endif ---- lighttpd-1.4.11/src/network_write.c 2005-10-22 12:27:56.000000000 +0300 -+++ lighttpd-1.4.12/src/network_write.c 2006-07-11 22:07:51.000000000 +0300 +--- ../lighttpd-1.4.11/src/network_write.c 2005-10-22 12:27:56.000000000 +0300 ++++ lighttpd-1.4.12/src/network_write.c 2006-07-15 22:43:21.000000000 +0300 @@ -1,11 +1,11 @@ #include #include @@ -42059,7 +41997,7 @@ #ifdef HAVE_SYS_FILIO_H # include #endif -@@ -24,47 +27,86 @@ +@@ -24,47 +27,84 @@ #include #endif @@ -42071,43 +42009,41 @@ +* as vectors +*/ +NETWORK_BACKEND_READ(read) { -+ int toread; -+ buffer *b; -+ off_t r; -+ -+ /* check how much we have to read */ -+ if (ioctl(fd, FIONREAD, &toread)) { -+ log_error_write(srv, __FILE__, __LINE__, "sd", -+ "ioctl failed: ", -+ fd); -+ return NETWORK_STATUS_FATAL_ERROR; -+ } ++ int toread; ++ buffer *b; ++ off_t r; + -+ if (toread == 0) return NETWORK_STATUS_WAIT_FOR_EVENT; ++ /* use a chunk-size of 8k */ ++ do { ++ toread = 8192; + -+ /* -+ * our chunk queue is quiet large already -+ * -+ * let's buffer it to disk -+ */ ++ b = chunkqueue_get_append_buffer(cq); + -+ b = chunkqueue_get_append_buffer(cq); ++ buffer_prepare_copy(b, toread); + -+ buffer_prepare_copy(b, toread); ++ if (-1 == (r = read(fd, b->ptr, toread))) { ++ switch (errno) { ++ case EAGAIN: ++ return NETWORK_STATUS_WAIT_FOR_EVENT; ++ default: ++ log_error_write(srv, __FILE__, __LINE__, "sds", ++ "unexpected end-of-file (perhaps the proxy process died):", ++ fd, strerror(errno)); ++ return NETWORK_STATUS_FATAL_ERROR; ++ } ++ } + -+ if (-1 == (r = read(fd, b->ptr, toread))) { -+ log_error_write(srv, __FILE__, __LINE__, "sds", -+ "unexpected end-of-file (perhaps the proxy process died):", -+ fd, strerror(errno)); -+ return NETWORK_STATUS_FATAL_ERROR; -+ } ++ if (r == 0) { ++ return NETWORK_STATUS_CONNECTION_CLOSE; ++ } + -+ /* this should be catched by the b > 0 above */ -+ assert(r); -+ b->used += r + 1; -+ b->ptr[b->used - 1] = '\0'; ++ /* this should be catched by the b > 0 above */ ++ assert(r); ++ b->used += r + 1; ++ b->ptr[b->used - 1] = '\0'; ++ } while (r == toread); + -+ return NETWORK_STATUS_SUCCESS; ++ return NETWORK_STATUS_SUCCESS; +} + +NETWORK_BACKEND_WRITE(write) { @@ -42164,7 +42100,7 @@ break; } case FILE_CHUNK: { -@@ -76,93 +118,89 @@ +@@ -76,93 +116,89 @@ size_t toSend; stat_cache_entry *sce = NULL; int ifd; @@ -42285,8 +42221,8 @@ - p->write = network_write_write_chunkset; -} #endif ---- lighttpd-1.4.11/src/network_writev.c 2006-02-15 01:02:36.000000000 +0200 -+++ lighttpd-1.4.12/src/network_writev.c 2006-07-11 22:07:52.000000000 +0300 +--- ../lighttpd-1.4.11/src/network_writev.c 2006-02-15 01:02:36.000000000 +0200 ++++ lighttpd-1.4.12/src/network_writev.c 2006-07-15 22:43:21.000000000 +0300 @@ -28,10 +28,10 @@ #ifndef UIO_MAXIOV @@ -42300,7 +42236,7 @@ # define UIO_MAXIOV 512 # elif defined(__sun) /* Solaris (and SunOS?) defines IOV_MAX instead */ -@@ -51,105 +51,119 @@ +@@ -51,105 +51,121 @@ #define LOCAL_BUFFERING 1 #endif @@ -42353,9 +42289,9 @@ + if ((r = writev(fd, chunks, num_chunks)) < 0) { + switch (errno) { + case EAGAIN: ++ return NETWORK_STATUS_WAIT_FOR_EVENT; + case EINTR: -+ r = 0; -+ break; ++ return NETWORK_STATUS_INTERRUPTED; + case EPIPE: + case ECONNRESET: + return NETWORK_STATUS_CONNECTION_CLOSE; @@ -42380,10 +42316,12 @@ + /* partially written */ + + tc->offset += r; -+ break; ++ ++ return NETWORK_STATUS_WAIT_FOR_EVENT; + } + } + ++ /* all chunks have been pushed out */ + return NETWORK_STATUS_SUCCESS; +} + @@ -42505,7 +42443,7 @@ case FILE_CHUNK: { ssize_t r; off_t abs_offset; -@@ -159,26 +173,26 @@ +@@ -159,26 +175,26 @@ #define KByte * 1024 #define MByte * 1024 KByte #define GByte * 1024 MByte @@ -42540,7 +42478,7 @@ * - new mmap as the we are at the end of the last one */ if (c->file.mmap.start == MAP_FAILED || abs_offset == (off_t)(c->file.mmap.offset + c->file.mmap.length)) { -@@ -188,7 +202,7 @@ +@@ -188,7 +204,7 @@ * adaptive mem-mapping * the problem: * we mmap() the whole file. If someone has alot large files and 32bit @@ -42549,7 +42487,7 @@ * mmap() call. * solution: * only mmap 16M in one chunk and move the window as soon as we have finished -@@ -234,8 +248,8 @@ +@@ -234,8 +250,8 @@ if (-1 == c->file.fd) { /* open the file if not already open */ if (-1 == (c->file.fd = open(c->file.name->ptr, O_RDONLY))) { log_error_write(srv, __FILE__, __LINE__, "sbs", "open failed for:", c->file.name, strerror(errno)); @@ -42560,7 +42498,7 @@ } #ifdef FD_CLOEXEC fcntl(c->file.fd, F_SETFD, FD_CLOEXEC); -@@ -245,10 +259,10 @@ +@@ -245,10 +261,10 @@ if (MAP_FAILED == (c->file.mmap.start = mmap(0, to_mmap, PROT_READ, MAP_SHARED, c->file.fd, c->file.mmap.offset))) { /* close it here, otherwise we'd have to set FD_CLOEXEC */ @@ -42573,7 +42511,7 @@ } c->file.mmap.length = to_mmap; -@@ -258,7 +272,7 @@ +@@ -258,7 +274,7 @@ #ifdef HAVE_MADVISE /* don't advise files < 64Kb */ if (c->file.mmap.length > (64 KByte)) { @@ -42582,7 +42520,7 @@ * detect this at runtime.i * * ignore the return value for now */ -@@ -274,12 +288,12 @@ +@@ -274,12 +290,12 @@ toSend = (c->file.mmap.offset + c->file.mmap.length) - (abs_offset); if (toSend < 0) { @@ -42597,7 +42535,7 @@ assert(toSend < 0); } -@@ -297,18 +311,18 @@ +@@ -297,18 +313,18 @@ break; case EPIPE: case ECONNRESET: @@ -42622,7 +42560,7 @@ if (c->offset == c->file.length) { chunk_finished = 1; -@@ -318,26 +332,26 @@ +@@ -318,26 +334,26 @@ c->file.mmap.start = MAP_FAILED; } } @@ -42657,7 +42595,7 @@ } #endif ---- lighttpd-1.4.11/src/plugin.c 2006-02-08 14:00:54.000000000 +0200 +--- ../lighttpd-1.4.11/src/plugin.c 2006-02-08 14:00:54.000000000 +0200 +++ lighttpd-1.4.12/src/plugin.c 2006-07-11 22:07:52.000000000 +0300 @@ -13,27 +13,27 @@ #include @@ -43105,7 +43043,7 @@ free(srv->plugins.ptr); srv->plugins.ptr = NULL; srv->plugins.used = 0; ---- lighttpd-1.4.11/src/plugin.h 2005-08-15 12:28:56.000000000 +0300 +--- ../lighttpd-1.4.11/src/plugin.h 2005-08-15 12:28:56.000000000 +0300 +++ lighttpd-1.4.12/src/plugin.h 2006-07-11 22:07:52.000000000 +0300 @@ -12,6 +12,12 @@ @@ -43183,7 +43121,7 @@ +void *plugin_get_config(server *srv, const char *name); #endif ---- lighttpd-1.4.11/src/proc_open.c 2005-08-11 01:26:39.000000000 +0300 +--- ../lighttpd-1.4.11/src/proc_open.c 2005-08-11 01:26:39.000000000 +0300 +++ lighttpd-1.4.12/src/proc_open.c 2006-07-11 22:07:53.000000000 +0300 @@ -13,13 +13,13 @@ #endif @@ -43270,7 +43208,7 @@ for (;;) { buffer_prepare_append(b, 512); ---- lighttpd-1.4.11/src/proc_open.h 2005-08-11 01:26:39.000000000 +0300 +--- ../lighttpd-1.4.11/src/proc_open.h 2005-08-11 01:26:39.000000000 +0300 +++ lighttpd-1.4.12/src/proc_open.h 2006-07-11 22:07:53.000000000 +0300 @@ -1,7 +1,7 @@ @@ -43281,7 +43219,7 @@ #include typedef HANDLE descriptor_t; typedef HANDLE proc_pid_t; ---- lighttpd-1.4.11/src/request.c 2006-03-05 11:58:09.000000000 +0200 +--- ../lighttpd-1.4.11/src/request.c 2006-03-05 11:58:09.000000000 +0200 +++ lighttpd-1.4.12/src/request.c 2006-07-11 22:07:52.000000000 +0300 @@ -10,15 +10,17 @@ #include "keyvalue.h" @@ -44392,7 +44330,7 @@ + return 0; } ---- lighttpd-1.4.11/src/response.c 2006-03-04 16:41:39.000000000 +0200 +--- ../lighttpd-1.4.11/src/response.c 2006-03-04 16:41:39.000000000 +0200 +++ lighttpd-1.4.12/src/response.c 2006-07-11 22:07:52.000000000 +0300 @@ -7,7 +7,6 @@ #include @@ -45058,7 +44996,7 @@ /* can't happen */ return HANDLER_COMEBACK; } ---- lighttpd-1.4.11/src/server.c 2006-03-04 19:12:17.000000000 +0200 +--- ../lighttpd-1.4.11/src/server.c 2006-03-04 19:12:17.000000000 +0200 +++ lighttpd-1.4.12/src/server.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,11 +1,9 @@ #include @@ -46271,7 +46209,7 @@ + return 0; } ---- lighttpd-1.4.11/src/settings.h 2005-08-11 01:26:41.000000000 +0300 +--- ../lighttpd-1.4.11/src/settings.h 2005-08-11 01:26:41.000000000 +0300 +++ lighttpd-1.4.12/src/settings.h 2006-07-11 22:07:53.000000000 +0300 @@ -9,24 +9,24 @@ /** @@ -46305,7 +46243,7 @@ HANDLER_ERROR, HANDLER_WAIT_FOR_FD } handler_t; ---- lighttpd-1.4.11/src/spawn-fcgi.c 2006-03-07 14:18:10.000000000 +0200 +--- ../lighttpd-1.4.11/src/spawn-fcgi.c 2006-03-07 14:18:10.000000000 +0200 +++ lighttpd-1.4.12/src/spawn-fcgi.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,19 +1,16 @@ #include @@ -46780,7 +46718,7 @@ return fcgi_spawn_connection(fcgi_app, addr, port, unixsocket, child_count, pid_fd, nofork); } #else ---- lighttpd-1.4.11/src/splaytree.c 2005-09-12 21:51:28.000000000 +0300 +--- ../lighttpd-1.4.11/src/splaytree.c 2005-09-12 21:51:28.000000000 +0300 +++ lighttpd-1.4.12/src/splaytree.c 2006-07-11 22:07:51.000000000 +0300 @@ -56,19 +56,19 @@ @@ -46815,7 +46753,7 @@ l->right = t->left; /* assemble */ r->left = t->right; t->left = N.right; ---- lighttpd-1.4.11/src/splaytree.h 2005-09-12 21:51:13.000000000 +0300 +--- ../lighttpd-1.4.11/src/splaytree.h 2005-09-12 21:51:13.000000000 +0300 +++ lighttpd-1.4.12/src/splaytree.h 2006-07-11 22:07:51.000000000 +0300 @@ -19,6 +19,6 @@ /* This macro returns the size of a node. Unlike "x->size", */ @@ -46825,8 +46763,8 @@ + #endif ---- lighttpd-1.4.11/src/stat_cache.c 2005-11-22 15:23:51.000000000 +0200 -+++ lighttpd-1.4.12/src/stat_cache.c 2006-07-11 22:07:52.000000000 +0300 +--- ../lighttpd-1.4.11/src/stat_cache.c 2005-11-22 15:23:51.000000000 +0200 ++++ lighttpd-1.4.12/src/stat_cache.c 2006-07-15 22:43:21.000000000 +0300 @@ -6,7 +6,6 @@ #include #include @@ -47241,16 +47179,19 @@ if (type->used == 0) continue; /* check if the right side is the same */ -@@ -539,7 +527,7 @@ +@@ -538,8 +526,10 @@ + stat_cache_attr_get(sce->content_type, name->ptr); } #endif ++ } else if (S_ISDIR(st.st_mode)) { ++ etag_create(sce->etag, &(sce->st)); } - + #ifdef HAVE_FAM_H if (sc->fam && (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM)) { -@@ -549,19 +537,19 @@ +@@ -549,19 +539,19 @@ fam_dir->fc = sc->fam; buffer_copy_string_buffer(fam_dir->name, sc->dir_name); @@ -47279,7 +47220,7 @@ fam_dir_entry_free(fam_dir); } else { int osize = 0; -@@ -570,7 +558,7 @@ +@@ -570,7 +560,7 @@ osize = sc->dirs->size; } @@ -47288,7 +47229,7 @@ assert(sc->dirs); assert(sc->dirs->data == fam_dir); assert(osize == (sc->dirs->size - 1)); -@@ -578,9 +566,9 @@ +@@ -578,9 +568,9 @@ } else { fam_dir = dir_node->data; } @@ -47300,7 +47241,7 @@ if (fam_dir) { sce->dir_version = fam_dir->version; sce->dir_ndx = dir_ndx; -@@ -594,11 +582,11 @@ +@@ -594,11 +584,11 @@ } /** @@ -47315,7 +47256,7 @@ * and remove them in a second loop */ -@@ -639,9 +627,9 @@ +@@ -639,9 +629,9 @@ sc->files = splaytree_splay(sc->files, ndx); node = sc->files; @@ -47327,7 +47268,7 @@ size_t j; int osize = splaytree_size(sc->files); stat_cache_entry *sce = node->data; -@@ -649,7 +637,7 @@ +@@ -649,7 +639,7 @@ stat_cache_entry_free(node->data); sc->files = splaytree_delete(sc->files, ndx); @@ -47336,7 +47277,7 @@ for (j = 0; j < ctrl.used; j++) { if (ctrl.ptr[j] == ndx) { ctrl.ptr[j] = ctrl.ptr[--ctrl.used]; ---- lighttpd-1.4.11/src/stream.c 2005-09-23 21:50:15.000000000 +0300 +--- ../lighttpd-1.4.11/src/stream.c 2005-09-23 21:50:15.000000000 +0300 +++ lighttpd-1.4.12/src/stream.c 2006-07-11 22:07:53.000000000 +0300 @@ -1,7 +1,6 @@ #include @@ -47437,7 +47378,7 @@ return 0; } ---- lighttpd-1.4.11/src/sys-files.h 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/src/sys-files.h 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/src/sys-files.h 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,67 @@ +#ifndef _SYS_FILES_H_ @@ -47507,7 +47448,7 @@ + +#endif + ---- lighttpd-1.4.11/src/sys-mmap.h 2005-08-11 01:26:34.000000000 +0300 +--- ../lighttpd-1.4.11/src/sys-mmap.h 2005-08-11 01:26:34.000000000 +0300 +++ lighttpd-1.4.12/src/sys-mmap.h 2006-07-11 22:07:52.000000000 +0300 @@ -1,7 +1,7 @@ #ifndef WIN32_MMAP_H @@ -47518,9 +47459,9 @@ #define MAP_FAILED -1 #define PROT_SHARED 0 ---- lighttpd-1.4.11/src/sys-process.h 1970-01-01 03:00:00.000000000 +0300 -+++ lighttpd-1.4.12/src/sys-process.h 2006-07-11 22:07:52.000000000 +0300 -@@ -0,0 +1,16 @@ +--- ../lighttpd-1.4.11/src/sys-process.h 1970-01-01 03:00:00.000000000 +0300 ++++ lighttpd-1.4.12/src/sys-process.h 2006-07-15 22:43:21.000000000 +0300 +@@ -0,0 +1,17 @@ +#ifndef _SYS_PROCESS_H_ +#define _SYS_PROCESS_H_ + @@ -47529,6 +47470,7 @@ +#define pid_t int +/* win32 has no fork() */ +#define kill(x, y) ++#define getpid() 0 + +#else +#include @@ -47537,8 +47479,8 @@ + +#endif + ---- lighttpd-1.4.11/src/sys-socket.h 2005-08-11 01:26:39.000000000 +0300 -+++ lighttpd-1.4.12/src/sys-socket.h 2006-07-11 22:07:52.000000000 +0300 +--- ../lighttpd-1.4.11/src/sys-socket.h 2005-08-11 01:26:39.000000000 +0300 ++++ lighttpd-1.4.12/src/sys-socket.h 2006-07-15 22:43:21.000000000 +0300 @@ -1,15 +1,26 @@ #ifndef WIN32_SOCKET_H #define WIN32_SOCKET_H @@ -47567,7 +47509,7 @@ #else #include #include -@@ -18,6 +29,11 @@ +@@ -18,7 +29,23 @@ #include #include @@ -47579,7 +47521,19 @@ #include #endif ---- lighttpd-1.4.11/src/sys-strings.h 1970-01-01 03:00:00.000000000 +0300 ++typedef union { ++#ifdef HAVE_IPV6 ++ struct sockaddr_in6 ipv6; ++#endif ++ struct sockaddr_in ipv4; ++#ifdef HAVE_SYS_UN_H ++ struct sockaddr_un un; ++#endif ++ struct sockaddr plain; ++} sock_addr; ++ + #endif +--- ../lighttpd-1.4.11/src/sys-strings.h 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/src/sys-strings.h 2006-07-11 22:07:51.000000000 +0300 @@ -0,0 +1,11 @@ +#ifndef _SYS_STRINGS_H_ @@ -47593,7 +47547,7 @@ + +#endif + ---- lighttpd-1.4.11/tests/LightyTest.pm 2006-01-14 20:32:31.000000000 +0200 +--- ../lighttpd-1.4.11/tests/LightyTest.pm 2006-01-14 20:32:31.000000000 +0200 +++ lighttpd-1.4.12/tests/LightyTest.pm 2006-07-11 22:07:53.000000000 +0300 @@ -87,14 +87,14 @@ # pre-process configfile if necessary @@ -47633,9 +47587,9 @@ # check length if (defined $resp_hdr{"content-length"}) { $resp_body = substr($lines, 0, $resp_hdr{"content-length"}); ---- lighttpd-1.4.11/tests/Makefile.am 2005-09-16 15:48:40.000000000 +0300 -+++ lighttpd-1.4.12/tests/Makefile.am 2006-07-11 22:07:53.000000000 +0300 -@@ -39,10 +39,15 @@ +--- ../lighttpd-1.4.11/tests/Makefile.am 2005-09-16 15:48:40.000000000 +0300 ++++ lighttpd-1.4.12/tests/Makefile.am 2006-07-15 22:43:22.000000000 +0300 +@@ -39,10 +39,18 @@ mod-redirect.t \ mod-userdir.t \ mod-rewrite.t \ @@ -47648,81 +47602,14 @@ + lowercase.t \ + lowercase.conf \ + proxy.conf \ -+ cachable.t ++ cachable.t \ ++ default.conf \ ++ proxy-backend-1.conf \ ++ proxy-backend-2.conf TESTS_ENVIRONMENT=$(srcdir)/wrapper.sh $(srcdir) $(top_builddir) ---- lighttpd-1.4.11/tests/Makefile.in 2006-03-07 14:21:03.000000000 +0200 -+++ lighttpd-1.4.12/tests/Makefile.in 2006-07-11 21:48:14.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -13,8 +13,6 @@ - # PARTICULAR PURPOSE. - - @SET_MAKE@ --SOURCES = $(fcgi_auth_SOURCES) $(fcgi_responder_SOURCES) -- - srcdir = @srcdir@ - top_srcdir = @top_srcdir@ - VPATH = @srcdir@ -@@ -46,7 +44,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - am__fcgi_auth_SOURCES_DIST = fcgi-auth.c -@@ -67,8 +65,8 @@ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) - CCLD = $(CC) --LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -- $(AM_LDFLAGS) $(LDFLAGS) -o $@ -+LINK = $(LIBTOOL) --tag=CC --mode=link "$(CCLD)" $(AM_CFLAGS) \ -+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ - SOURCES = $(fcgi_auth_SOURCES) $(fcgi_responder_SOURCES) - DIST_SOURCES = $(am__fcgi_auth_SOURCES_DIST) \ - $(am__fcgi_responder_SOURCES_DIST) -@@ -134,7 +132,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -177,6 +174,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -@@ -253,10 +251,15 @@ - mod-redirect.t \ - mod-userdir.t \ - mod-rewrite.t \ -+ mod-proxy.t \ - request.t \ - mod-ssi.t \ - LightyTest.pm \ -- mod-setenv.t -+ mod-setenv.t \ -+ lowercase.t \ -+ lowercase.conf \ -+ proxy.conf \ -+ cachable.t - - TESTS_ENVIRONMENT = $(srcdir)/wrapper.sh $(srcdir) $(top_builddir) - EXTRA_DIST = wrapper.sh lighttpd.conf \ ---- lighttpd-1.4.11/tests/bug-06.conf 2005-08-27 17:44:19.000000000 +0300 +--- ../lighttpd-1.4.11/tests/bug-06.conf 2005-08-27 17:44:19.000000000 +0300 +++ lighttpd-1.4.12/tests/bug-06.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,5 +1,5 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" @@ -47796,7 +47683,7 @@ server.name = "zzz.example.org" } ---- lighttpd-1.4.11/tests/bug-12.conf 2005-08-27 17:44:19.000000000 +0300 +--- ../lighttpd-1.4.11/tests/bug-12.conf 2005-08-27 17:44:19.000000000 +0300 +++ lighttpd-1.4.12/tests/bug-12.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,5 +1,5 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" @@ -47870,7 +47757,7 @@ server.name = "zzz.example.org" } ---- lighttpd-1.4.11/tests/cachable.t 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/tests/cachable.t 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/tests/cachable.t 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,112 @@ +#!/usr/bin/env perl @@ -47985,7 +47872,7 @@ + +ok($tf->stop_proc == 0, "Stopping lighttpd"); + ---- lighttpd-1.4.11/tests/condition.conf 2005-08-27 17:44:19.000000000 +0300 +--- ../lighttpd-1.4.11/tests/condition.conf 2005-08-27 17:44:19.000000000 +0300 +++ lighttpd-1.4.12/tests/condition.conf 2006-07-11 22:07:53.000000000 +0300 @@ -2,15 +2,15 @@ debug.log-request-handling = "enable" @@ -48045,7 +47932,7 @@ server.name = "test3.example.org" url.redirect = ("^" => "/match_4") ---- lighttpd-1.4.11/tests/core-keepalive.t 2005-11-17 15:54:19.000000000 +0200 +--- ../lighttpd-1.4.11/tests/core-keepalive.t 2005-11-17 15:54:19.000000000 +0200 +++ lighttpd-1.4.12/tests/core-keepalive.t 2006-07-11 22:07:53.000000000 +0300 @@ -40,7 +40,7 @@ @@ -48056,215 +47943,17 @@ EOF ); $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } , { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; ---- lighttpd-1.4.11/tests/docroot/123/Makefile.in 2006-03-07 14:21:03.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/123/Makefile.in 2006-07-11 21:48:15.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -42,7 +42,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -100,7 +100,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -143,6 +142,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/tests/docroot/Makefile.in 2006-03-07 14:21:04.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/Makefile.in 2006-07-11 21:48:15.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -42,7 +42,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -109,7 +109,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -152,6 +151,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/tests/docroot/www/Makefile.in 2006-03-07 14:21:05.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/www/Makefile.in 2006-07-11 21:48:15.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -42,7 +42,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -109,7 +109,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -152,6 +151,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/tests/docroot/www/dummydir/.svn/entries 2006-03-09 19:21:49.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/www/dummydir/.svn/entries 2006-07-11 22:07:54.000000000 +0300 +--- ../lighttpd-1.4.11/tests/docroot/www/dummydir/.svn/entries 2006-03-09 19:21:49.000000000 +0200 ++++ lighttpd-1.4.12/tests/docroot/www/dummydir/.svn/entries 2006-07-15 22:43:22.000000000 +0300 @@ -9,5 +9,6 @@ last-author="jan" kind="dir" uuid="152afb58-edef-0310-8abb-c4023f1b3aa9" - revision="1040"/> + repos="svn://svn.lighttpd.net/lighttpd" -+ revision="1154"/> ++ revision="1173"/> ---- lighttpd-1.4.11/tests/docroot/www/expire/Makefile.in 2006-03-07 14:21:05.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/www/expire/Makefile.in 2006-07-11 21:48:15.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -42,7 +42,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -100,7 +100,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -143,6 +142,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/tests/docroot/www/go/Makefile.in 2006-03-07 14:21:06.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/www/go/Makefile.in 2006-07-11 21:48:16.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -42,7 +42,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -100,7 +100,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -143,6 +142,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/tests/docroot/www/indexfile/Makefile.in 2006-03-07 14:21:07.000000000 +0200 -+++ lighttpd-1.4.12/tests/docroot/www/indexfile/Makefile.in 2006-07-11 21:48:16.000000000 +0300 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.5 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -42,7 +42,7 @@ - am__aclocal_m4_deps = $(top_srcdir)/configure.in - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -+mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = - SOURCES = -@@ -100,7 +100,6 @@ - LIBTOOL = @LIBTOOL@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ --LUACONFIG = @LUACONFIG@ - LUA_CFLAGS = @LUA_CFLAGS@ - LUA_LIBS = @LUA_LIBS@ - MAINT = @MAINT@ -@@ -143,6 +142,7 @@ - ac_ct_F77 = @ac_ct_F77@ - ac_ct_RANLIB = @ac_ct_RANLIB@ - ac_ct_STRIP = @ac_ct_STRIP@ -+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ - am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ - am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ - am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ ---- lighttpd-1.4.11/tests/fastcgi-10.conf 2005-08-31 23:36:34.000000000 +0300 +--- ../lighttpd-1.4.11/tests/fastcgi-10.conf 2005-08-31 23:36:34.000000000 +0300 +++ lighttpd-1.4.12/tests/fastcgi-10.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,12 +1,12 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" @@ -48323,7 +48012,7 @@ server.name = "zzz.example.org" } ---- lighttpd-1.4.11/tests/fastcgi-13.conf 2006-01-03 12:38:17.000000000 +0200 +--- ../lighttpd-1.4.11/tests/fastcgi-13.conf 2006-01-03 12:38:17.000000000 +0200 +++ lighttpd-1.4.12/tests/fastcgi-13.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,5 +1,5 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" @@ -48383,7 +48072,7 @@ server.name = "zzz.example.org" } ---- lighttpd-1.4.11/tests/fastcgi-auth.conf 2005-08-27 17:44:19.000000000 +0300 +--- ../lighttpd-1.4.11/tests/fastcgi-auth.conf 2005-08-27 17:44:19.000000000 +0300 +++ lighttpd-1.4.12/tests/fastcgi-auth.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,5 +1,5 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" @@ -48455,7 +48144,7 @@ server.name = "zzz.example.org" } ---- lighttpd-1.4.11/tests/fastcgi-responder.conf 2005-08-27 17:44:19.000000000 +0300 +--- ../lighttpd-1.4.11/tests/fastcgi-responder.conf 2005-08-27 17:44:19.000000000 +0300 +++ lighttpd-1.4.12/tests/fastcgi-responder.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,5 +1,5 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" @@ -48529,7 +48218,7 @@ server.name = "zzz.example.org" } ---- lighttpd-1.4.11/tests/fcgi-responder.c 2005-08-11 01:26:55.000000000 +0300 +--- ../lighttpd-1.4.11/tests/fcgi-responder.c 2005-08-11 01:26:55.000000000 +0300 +++ lighttpd-1.4.12/tests/fcgi-responder.c 2006-07-11 22:07:53.000000000 +0300 @@ -6,11 +6,17 @@ int main () { @@ -48573,7 +48262,7 @@ } else if (0 == strcmp(p, "die-at-end")) { printf("Status: 200 OK\r\n\r\n"); num_requests--; ---- lighttpd-1.4.11/tests/lighttpd.conf 2006-03-09 15:26:58.000000000 +0200 +--- ../lighttpd-1.4.11/tests/lighttpd.conf 2006-03-09 15:26:58.000000000 +0200 +++ lighttpd-1.4.12/tests/lighttpd.conf 2006-07-11 22:07:53.000000000 +0300 @@ -1,80 +1,18 @@ -debug.log-request-handling = "enable" @@ -48745,7 +48434,7 @@ simple-vhost.default-host = "www.example.org" } ---- lighttpd-1.4.11/tests/lowercase.conf 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/tests/lowercase.conf 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/tests/lowercase.conf 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,80 @@ +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" @@ -48828,7 +48517,7 @@ +$HTTP["host"] == "lowercase-exclude" { + static-file.exclude-extensions = ( ".jpg" ) +} ---- lighttpd-1.4.11/tests/lowercase.t 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/tests/lowercase.t 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/tests/lowercase.t 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,94 @@ +#!/usr/bin/env perl @@ -48925,7 +48614,7 @@ + +ok($tf->stop_proc == 0, "Stopping lighttpd"); + ---- lighttpd-1.4.11/tests/mod-fastcgi.t 2006-03-09 15:30:45.000000000 +0200 +--- ../lighttpd-1.4.11/tests/mod-fastcgi.t 2006-03-09 15:30:45.000000000 +0200 +++ lighttpd-1.4.12/tests/mod-fastcgi.t 2006-07-11 22:07:53.000000000 +0300 @@ -7,7 +7,7 @@ } @@ -48989,7 +48678,7 @@ $t->{REQUEST} = ( <stop_proc == 0, "Stopping lighttpd proxy"); + ---- lighttpd-1.4.11/tests/proxy.conf 1970-01-01 03:00:00.000000000 +0300 +--- ../lighttpd-1.4.11/tests/proxy.conf 1970-01-01 03:00:00.000000000 +0300 +++ lighttpd-1.4.12/tests/proxy.conf 2006-07-11 22:07:53.000000000 +0300 @@ -0,0 +1,26 @@ +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" @@ -49194,7 +48883,7 @@ + proxy.balance = "fair" +} + ---- lighttpd-1.4.11/tests/var-include.conf 2005-08-27 17:44:19.000000000 +0300 +--- ../lighttpd-1.4.11/tests/var-include.conf 2005-08-27 17:44:19.000000000 +0300 +++ lighttpd-1.4.12/tests/var-include.conf 2006-07-11 22:07:53.000000000 +0300 @@ -2,15 +2,15 @@ debug.log-request-handling = "enable" -- 2.43.0