Hello community,
here is the log from the commit of package lighttpd for openSUSE:Factory checked in at 2017-01-25 23:26:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lighttpd (Old)
and /work/SRC/openSUSE:Factory/.lighttpd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lighttpd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lighttpd/lighttpd.changes 2017-01-16 11:15:47.637447693 +0100
+++ /work/SRC/openSUSE:Factory/.lighttpd.new/lighttpd.changes 2017-01-25 23:26:26.430687117 +0100
@@ -1,0 +2,34 @@
+Mon Jan 16 14:34:52 UTC 2017 - bwiedemann@suse.com
+
+- make lighttpd user own /var/log/lighttpd/
+ to be able to write logs there
+
+-------------------------------------------------------------------
+Sat Jan 14 12:25:58 UTC 2017 - stbuehler@web.de
+
+- fix some rpmlint messages
+ + update FSF address for lighttpd.init
+ + install example scripts without +x to avoid pulling shell
+ dependencies
+ + W:file-contains-current-date /usr/sbin/lighttpd is a false positive;
+ it only happens when the last-source-modified date is the same as
+ the build date
+ + I: binary-or-shlib-calls-gethostbyname has been forwarded upstream
+
+-------------------------------------------------------------------
+Sat Jan 14 11:35:00 UTC 2017 - jenkins@lighttpd.net
+
+- update to 1.4.45
+ + - next is 1.4.45
+ + [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108)
+ + [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780)
+ + [mod_fastcgi] detect child exit, restart proactively
+ + [mod_scgi] detect child exit, restart proactively
+ + [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778)
+ + [doc] NEWS
+ + [tests] update test skip count for !fcgi-responder
+ + [tests] FCGI_Finish() final request before exit
+ + [tests] give time for periodic jobs to detect exit
+ + [mod_cgi] check cgi fd for num bytes ready to read
+
+-------------------------------------------------------------------
Old:
----
lighttpd_1.4.44-0.1.debian.tar.xz
lighttpd_1.4.44-0.1.dsc
lighttpd_1.4.44.orig.tar.xz
New:
----
lighttpd_1.4.45-0.1.debian.tar.xz
lighttpd_1.4.45-0.1.dsc
lighttpd_1.4.45.orig.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lighttpd.spec ++++++
--- /var/tmp/diff_new_pack.f2kb2S/_old 2017-01-25 23:26:27.266561101 +0100
+++ /var/tmp/diff_new_pack.f2kb2S/_new 2017-01-25 23:26:27.274559895 +0100
@@ -18,7 +18,7 @@
%define pkg_home %{_localstatedir}/lib/%{name}
Name: lighttpd
-Version: 1.4.44
+Version: 1.4.45
Release: 0
#
%define pkg_name %{name}
@@ -191,7 +191,7 @@
litmus tests are passed.
%package mod_authn_gssapi
-Summary: A module to provide GSSAPI authentication in lighttpd
+Summary: GSSAPI authentication in lighttpd
Group: Productivity/Networking/Web/Servers
Requires: %{name} = %{version}
@@ -199,7 +199,7 @@
A module to provide GSSAPI authentication in lighttpd.
%package mod_authn_ldap
-Summary: A module to provide LDAP authentication in lighttpd
+Summary: LDAP authentication in lighttpd
Group: Productivity/Networking/Web/Servers
Requires: %{name} = %{version}
@@ -207,7 +207,7 @@
A module to provide LDAP authentication in lighttpd.
%package mod_authn_mysql
-Summary: A module to provide MySQL authentication in lighttpd
+Summary: MySQL authentication in lighttpd
Group: Productivity/Networking/Web/Servers
Requires: %{name} = %{version}
@@ -299,6 +299,8 @@
# remove the .la files. we dont need them.
#
find %{buildroot} -type f -name "*.la" -delete -print
+# remove executable bit from doc scripts to avoid pulling dependencies
+chmod -x doc/scripts/spawn-php.sh doc/scripts/rrdtool-graph.sh
%pre
%{_sbindir}/groupadd -r %{name} >/dev/null 2>&1 ||:
@@ -412,14 +414,14 @@
%dir %attr(751,%{name},%{name}) %{pkg_home}/
%dir %attr(751,%{name},%{name}) %{pkg_home}/sockets/
%attr(751,%{name},%{name}) %{_var}/cache/%{name}/
-%dir %{_var}/log/%{name}/
+%dir %attr(750,%{name},%{name}) %{_var}/log/%{name}/
%files mod_rrdtool
%defattr(-,root,root,-)
%config(noreplace) %attr(640,root,%{name}) %{_sysconfdir}/%{name}/conf.d/rrdtool.conf
+%{_libdir}/%{name}/mod_rrdtool.so
%doc doc/outdated/rrdtool.txt
%doc doc/scripts/rrdtool-graph.sh
-%{_libdir}/%{name}/mod_rrdtool.so
%files mod_cml
%defattr(-,root,root,-)
++++++ lighttpd.init ++++++
--- /var/tmp/diff_new_pack.f2kb2S/_old 2017-01-25 23:26:27.390542411 +0100
+++ /var/tmp/diff_new_pack.f2kb2S/_new 2017-01-25 23:26:27.390542411 +0100
@@ -9,19 +9,19 @@
# and its symbolic link
# /(usr/)sbin/rclighttpd
#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# Template system startup script for some example service/daemon lighttpd
#
++++++ lighttpd_1.4.44-0.1.debian.tar.xz -> lighttpd_1.4.45-0.1.debian.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debian/changelog new/debian/changelog
--- old/debian/changelog 2016-12-24 10:04:42.000000000 +0100
+++ new/debian/changelog 2017-01-14 12:34:51.000000000 +0100
@@ -1,3 +1,21 @@
+lighttpd (1.4.45-0.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * new snapshot 1.4.45
+ + - next is 1.4.45
+ + [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108)
+ + [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780)
+ + [mod_fastcgi] detect child exit, restart proactively
+ + [mod_scgi] detect child exit, restart proactively
+ + [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778)
+ + [doc] NEWS
+ + [tests] update test skip count for !fcgi-responder
+ + [tests] FCGI_Finish() final request before exit
+ + [tests] give time for periodic jobs to detect exit
+ + [mod_cgi] check cgi fd for num bytes ready to read
+
+ -- Jenkins (autobuilder) Sat, 14 Jan 2017 11:34:51 +0000
+
lighttpd (1.4.44-0.1) unstable; urgency=low
* Non-maintainer upload.
++++++ lighttpd_1.4.44-0.1.dsc -> lighttpd_1.4.45-0.1.dsc ++++++
--- /work/SRC/openSUSE:Factory/lighttpd/lighttpd_1.4.44-0.1.dsc 2017-01-16 11:15:47.721435785 +0100
+++ /work/SRC/openSUSE:Factory/.lighttpd.new/lighttpd_1.4.45-0.1.dsc 2017-01-25 23:26:26.506675661 +0100
@@ -5,7 +5,7 @@
Source: lighttpd
Binary: lighttpd, lighttpd-doc, lighttpd-mod-mysql-vhost, lighttpd-mod-trigger-b4-dl, lighttpd-mod-cml, lighttpd-mod-magnet, lighttpd-mod-webdav, lighttpd-mod-authn-gssapi, lighttpd-mod-authn-ldap, lighttpd-mod-authn-mysql, lighttpd-mod-geoip
Architecture: any all
-Version: 1.4.44-0.1
+Version: 1.4.45-0.1
Maintainer: Debian lighttpd maintainers
Uploaders: Krzysztof Krzyżaniak (eloy) , Olaf van der Spek , Arno Töll , Michael Gilbert
Homepage: http://lighttpd.net/
@@ -26,23 +26,23 @@
lighttpd-mod-trigger-b4-dl deb httpd optional arch=any
lighttpd-mod-webdav deb httpd optional arch=any
Checksums-Sha1:
- 3597b9c71aabada26129e3ebc0838cb10317d72c 660304 lighttpd_1.4.44.orig.tar.xz
- 2cf54510a2ccdef90a90cf86d4f02f4a0f2b60fa 56364 lighttpd_1.4.44-0.1.debian.tar.xz
+ 03e516f8be59396bc148218fe7b993219dacaf5d 660432 lighttpd_1.4.45.orig.tar.xz
+ f9f181fa784b49c18f30ce3ab4a9514a9bccbeb2 56560 lighttpd_1.4.45-0.1.debian.tar.xz
Checksums-Sha256:
- adb66ca985651957feb209c91c55ebbf917d23630bfc3a216a2f70043c7b5422 660304 lighttpd_1.4.44.orig.tar.xz
- d359ec0efcb7666aa58ee9087153a0150f4d4bf43389245b998b32288252fdfb 56364 lighttpd_1.4.44-0.1.debian.tar.xz
+ 1c97225deea33eefba6d4158c2cef27913d47553263516bbe9d2e2760fc43a3f 660432 lighttpd_1.4.45.orig.tar.xz
+ 211ae709717e610caa7876bb5f46bd5e6f51203baa9c6461dbc5ab60d6a4686d 56560 lighttpd_1.4.45-0.1.debian.tar.xz
Files:
- eb9355543ce0248397acc3245005b110 660304 lighttpd_1.4.44.orig.tar.xz
- aa814c84306516c352db05e639a5a1e6 56364 lighttpd_1.4.44-0.1.debian.tar.xz
+ a128e1eda76899ce3fd115efae5fe631 660432 lighttpd_1.4.45.orig.tar.xz
+ 3cd4f8a75e2646bfcc17d72270ebccb5 56560 lighttpd_1.4.45-0.1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iQEcBAEBCAAGBQJYXjotAAoJEE3M2orHRjXrJSIIAKx2ZO6s+b58cD5jvcz+0pH7
-D/9sm5c2TeMlooSrqY6gQEYkjoKDOOL33Ke7iCX/GRs6THUTPYZoSEjZMNZfJ/CT
-oK6XAWvYqeUEWkvnVLktFGc5POIxzlvg6xvTs15dhO4gsLttDOlneuzVJH4ooKVz
-n4+A+U2v13dsZGDcr2UfZSRTD2oTVWrsyiI4Smu5kbXeO+WbnT5u+iyAdHt9bb7U
-+wA2aNUfcTmyfyV9p1XSNWAfGCN0Hh2t+eI3idhlPXaD+plhEChRzt4UVqDCClP6
-t5ahicohtJUTB3Cou6uMzzLKk1zEaj4WbvOBJZVGeZ434FpWtIFNAC+SDKmDa2I=
-=oRnr
+iQEcBAEBCAAGBQJYegzeAAoJEE3M2orHRjXriBEH/1NkSh1rQhWFqYFRNLv2M60G
+l4vhyfeUs+GCmCyI/XatTBEEYm2PvzeTAumd7bByTu3MK6+uZiODrOkKCFdai/j0
+lfo83nzLR1lkQxLdZ1Eq7YdcpmmhxIFoUSJjNrDA3ksoF2U/rafCo6P3LXWTHBV4
+sGlIy04VcfTTNmXH04lENparRCjiNHrmKqVQTFJZyK00EmN8bUJ1GWvpUogi2Kwg
+PL6E8owlhE8K4MBorATlwpE6raVTUWQGfUkF04+7VKC/YmYlTeAlb4XIdn52VGru
+4VO2SBCzDdMsa54e/V7hklFRYzUIPiPcIOctjI1Acj9yiAXkafdB8IWhYoVKUq8=
+=S/HP
-----END PGP SIGNATURE-----
++++++ lighttpd_1.4.44.orig.tar.xz -> lighttpd_1.4.45.orig.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/CMakeLists.txt new/lighttpd-1.4.45/CMakeLists.txt
--- old/lighttpd-1.4.44/CMakeLists.txt 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/CMakeLists.txt 2017-01-14 06:05:16.000000000 +0100
@@ -10,7 +10,7 @@
set(CPACK_PACKAGE_VERSION_MAJOR 1)
set(CPACK_PACKAGE_VERSION_MINOR 4)
-set(CPACK_PACKAGE_VERSION_PATCH 44)
+set(CPACK_PACKAGE_VERSION_PATCH 45)
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/NEWS new/lighttpd-1.4.45/NEWS
--- old/lighttpd-1.4.44/NEWS 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/NEWS 2017-01-14 06:05:16.000000000 +0100
@@ -3,7 +3,14 @@
NEWS
====
-- 1.4.44
+- 1.4.45
+ * [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108)
+ * [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780)
+ * [mod_fastcgi] detect child exit, restart proactively
+ * [mod_scgi] detect child exit, restart proactively
+ * [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778)
+
+- 1.4.44 - 2016-12-24
* [mod_scgi] fix segfault (fixes #2762)
* [mod_authn_gssapi] fix memory leak
* [config] warn if mod_authn_ldap,mysql not listed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/SConstruct new/lighttpd-1.4.45/SConstruct
--- old/lighttpd-1.4.44/SConstruct 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/SConstruct 2017-01-14 06:05:16.000000000 +0100
@@ -5,7 +5,7 @@
from stat import *
package = 'lighttpd'
-version = '1.4.44'
+version = '1.4.45'
def checkCHeaders(autoconf, hdrs):
p = re.compile('[^A-Z0-9]')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/configure new/lighttpd-1.4.45/configure
--- old/lighttpd-1.4.44/configure 2016-12-24 06:27:06.000000000 +0100
+++ new/lighttpd-1.4.45/configure 2017-01-14 06:05:57.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for lighttpd 1.4.44.
+# Generated by GNU Autoconf 2.69 for lighttpd 1.4.45.
#
# Report bugs to .
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='lighttpd'
PACKAGE_TARNAME='lighttpd'
-PACKAGE_VERSION='1.4.44'
-PACKAGE_STRING='lighttpd 1.4.44'
+PACKAGE_VERSION='1.4.45'
+PACKAGE_STRING='lighttpd 1.4.45'
PACKAGE_BUGREPORT='contact@lighttpd.net'
PACKAGE_URL=''
@@ -1421,7 +1421,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures lighttpd 1.4.44 to adapt to many kinds of systems.
+\`configure' configures lighttpd 1.4.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1491,7 +1491,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of lighttpd 1.4.44:";;
+ short | recursive ) echo "Configuration of lighttpd 1.4.45:";;
esac
cat <<\_ACEOF
@@ -1657,7 +1657,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-lighttpd configure 1.4.44
+lighttpd configure 1.4.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2320,7 +2320,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by lighttpd $as_me 1.4.44, which was
+It was created by lighttpd $as_me 1.4.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3262,7 +3262,7 @@
# Define the identity of the package.
PACKAGE='lighttpd'
- VERSION='1.4.44'
+ VERSION='1.4.45'
cat >>confdefs.h <<_ACEOF
@@ -18908,7 +18908,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by lighttpd $as_me 1.4.44, which was
+This file was extended by lighttpd $as_me 1.4.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18974,7 +18974,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-lighttpd config.status 1.4.44
+lighttpd config.status 1.4.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/configure.ac new/lighttpd-1.4.45/configure.ac
--- old/lighttpd-1.4.44/configure.ac 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/configure.ac 2017-01-14 06:05:16.000000000 +0100
@@ -1,7 +1,7 @@
dnl -*- Autoconf -*-
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
-AC_INIT([lighttpd], [1.4.44], [contact@lighttpd.net])
+AC_INIT([lighttpd], [1.4.45], [contact@lighttpd.net])
AC_CONFIG_SRCDIR([src/server.c])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/base.h new/lighttpd-1.4.45/src/base.h
--- old/lighttpd-1.4.44/src/base.h 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/base.h 2017-01-14 06:05:17.000000000 +0100
@@ -295,6 +295,7 @@
buffer *ssl_verifyclient_username;
unsigned short ssl_verifyclient_export_cert;
unsigned short ssl_disable_client_renegotiation;
+ unsigned short ssl_read_ahead;
unsigned short use_ipv6, set_v6only; /* set_v6only is only a temporary option */
unsigned short defer_accept;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/configfile.c new/lighttpd-1.4.45/src/configfile.c
--- old/lighttpd-1.4.44/src/configfile.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/configfile.c 2017-01-14 06:05:17.000000000 +0100
@@ -144,6 +144,7 @@
{ "server.stream-request-body", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 76 */
{ "server.stream-response-body", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 77 */
{ "server.max-request-field-size", NULL, T_CONFIG_INT, T_CONFIG_SCOPE_SERVER }, /* 78 */
+ { "ssl.read-ahead", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 79 */
{ NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
};
@@ -247,6 +248,7 @@
s->ssl_verifyclient_depth = 9;
s->ssl_verifyclient_export_cert = 0;
s->ssl_disable_client_renegotiation = 1;
+ s->ssl_read_ahead = (0 == i ? 1 : srv->config_storage[0]->ssl_read_ahead);
s->listen_backlog = (0 == i ? 1024 : srv->config_storage[0]->listen_backlog);
s->stream_request_body = 0;
s->stream_response_body = 0;
@@ -315,6 +317,7 @@
#endif
cv[76].destination = &(s->stream_request_body);
cv[77].destination = &(s->stream_response_body);
+ cv[79].destination = &(s->ssl_read_ahead);
srv->config_storage[i] = s;
@@ -543,6 +546,7 @@
PATCH(ssl_verifyclient_username);
PATCH(ssl_verifyclient_export_cert);
PATCH(ssl_disable_client_renegotiation);
+ PATCH(ssl_read_ahead);
return 0;
}
@@ -671,6 +675,8 @@
PATCH(ssl_verifyclient_export_cert);
} else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.disable-client-renegotiation"))) {
PATCH(ssl_disable_client_renegotiation);
+ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.read-ahead"))) {
+ PATCH(ssl_read_ahead);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/connections-glue.c new/lighttpd-1.4.45/src/connections-glue.c
--- old/lighttpd-1.4.44/src/connections-glue.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/connections-glue.c 2017-01-14 06:05:17.000000000 +0100
@@ -127,7 +127,7 @@
connection_set_state(srv, con, CON_STATE_ERROR);
return -1;
}
- } while (len > 0);
+ } while (len > 0 && (con->conf.ssl_read_ahead || SSL_pending(con->ssl) > 0));
if (len < 0) {
int oerrno = errno;
@@ -206,11 +206,13 @@
connection_set_state(srv, con, CON_STATE_ERROR);
return -1;
- } else { /*(len == 0)*/
+ } else if (len == 0) {
con->is_readable = 0;
/* the other end close the connection -> KEEP-ALIVE */
return -2;
+ } else {
+ return 0;
}
#else
UNUSED(srv);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_cgi.c new/lighttpd-1.4.45/src/mod_cgi.c
--- old/lighttpd-1.4.44/src/mod_cgi.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/mod_cgi.c 2017-01-14 06:05:17.000000000 +0100
@@ -398,7 +398,7 @@
#if defined(__WIN32)
buffer_string_prepare_copy(hctx->response, 4 * 1024);
#else
- if (ioctl(con->fd, FIONREAD, &toread) || toread <= 4*1024) {
+ if (ioctl(hctx->fd, FIONREAD, &toread) || toread <= 4*1024) {
buffer_string_prepare_copy(hctx->response, 4 * 1024);
} else {
if (toread > MAX_READ_LIMIT) toread = MAX_READ_LIMIT;
@@ -529,9 +529,13 @@
if (con->http_status >= 300 && con->http_status < 400) {
/*(con->parsed_response & HTTP_LOCATION)*/
+ size_t ulen = buffer_string_length(con->uri.path);
data_string *ds;
if (NULL != (ds = (data_string *) array_get_element(con->response.headers, "Location"))
- && ds->value->ptr[0] == '/') {
+ && ds->value->ptr[0] == '/'
+ && (0 != strncmp(ds->value->ptr, con->uri.path->ptr, ulen)
+ || (ds->value->ptr[ulen] != '\0' && ds->value->ptr[ulen] != '/' && ds->value->ptr[ulen] != '?'))
+ && NULL == array_get_element(con->response.headers, "Set-Cookie")) {
if (++con->loops_per_request > 5) {
log_error_write(srv, __FILE__, __LINE__, "sb", "too many internal loops while processing request:", con->request.orig_uri);
con->http_status = 500; /* Internal Server Error */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_fastcgi.c new/lighttpd-1.4.45/src/mod_fastcgi.c
--- old/lighttpd-1.4.44/src/mod_fastcgi.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/mod_fastcgi.c 2017-01-14 06:05:17.000000000 +0100
@@ -3550,6 +3550,49 @@
host = ex->hosts[n];
+ for (proc = host->first; proc; proc = proc->next) {
+ int status;
+
+ if (proc->pid == 0) continue;
+
+ switch (waitpid(proc->pid, &status, WNOHANG)) {
+ case 0:
+ /* child still running after timeout, good */
+ break;
+ case -1:
+ if (errno != EINTR) {
+ /* no PID found ? should never happen */
+ log_error_write(srv, __FILE__, __LINE__, "sddss",
+ "pid ", proc->pid, proc->state,
+ "not found:", strerror(errno));
+ }
+ break;
+ default:
+ /* the child should not terminate at all */
+ if (WIFEXITED(status)) {
+ if (proc->state != PROC_STATE_KILLED) {
+ log_error_write(srv, __FILE__, __LINE__, "sdb",
+ "child exited:",
+ WEXITSTATUS(status), proc->connection_name);
+ }
+ } else if (WIFSIGNALED(status)) {
+ if (WTERMSIG(status) != SIGTERM) {
+ log_error_write(srv, __FILE__, __LINE__, "sd",
+ "child signaled:",
+ WTERMSIG(status));
+ }
+ } else {
+ log_error_write(srv, __FILE__, __LINE__, "sd",
+ "child died somehow:",
+ status);
+ }
+ proc->pid = 0;
+ if (proc->state == PROC_STATE_RUNNING) host->active_procs--;
+ proc->state = PROC_STATE_DIED;
+ host->max_id--;
+ }
+ }
+
fcgi_restart_dead_procs(srv, p, host);
for (proc = host->unused_procs; proc; proc = proc->next) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_scgi.c new/lighttpd-1.4.45/src/mod_scgi.c
--- old/lighttpd-1.4.44/src/mod_scgi.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/mod_scgi.c 2017-01-14 06:05:17.000000000 +0100
@@ -2886,6 +2886,49 @@
host = ex->hosts[n];
+ for (proc = host->first; proc; proc = proc->next) {
+ int status;
+
+ if (proc->pid == 0) continue;
+
+ switch (waitpid(proc->pid, &status, WNOHANG)) {
+ case 0:
+ /* child still running after timeout, good */
+ break;
+ case -1:
+ if (errno != EINTR) {
+ /* no PID found ? should never happen */
+ log_error_write(srv, __FILE__, __LINE__, "sddss",
+ "pid ", proc->pid, proc->state,
+ "not found:", strerror(errno));
+ }
+ break;
+ default:
+ /* the child should not terminate at all */
+ if (WIFEXITED(status)) {
+ if (proc->state != PROC_STATE_KILLED) {
+ log_error_write(srv, __FILE__, __LINE__, "sdb",
+ "child exited:",
+ WEXITSTATUS(status), proc->socket);
+ }
+ } else if (WIFSIGNALED(status)) {
+ if (WTERMSIG(status) != SIGTERM) {
+ log_error_write(srv, __FILE__, __LINE__, "sd",
+ "child signaled:",
+ WTERMSIG(status));
+ }
+ } else {
+ log_error_write(srv, __FILE__, __LINE__, "sd",
+ "child died somehow:",
+ status);
+ }
+ proc->pid = 0;
+ if (proc->state == PROC_STATE_RUNNING) host->active_procs--;
+ proc->state = PROC_STATE_DIED;
+ host->max_id--;
+ }
+ }
+
scgi_restart_dead_procs(srv, p, host);
for (proc = host->first; proc; proc = proc->next) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_webdav.c new/lighttpd-1.4.45/src/mod_webdav.c
--- old/lighttpd-1.4.44/src/mod_webdav.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/mod_webdav.c 2017-01-14 06:05:17.000000000 +0100
@@ -2758,7 +2758,10 @@
static handler_t mod_webdav_connection_reset(server *srv, connection *con, void *p_d) {
plugin_data *p = p_d;
handler_ctx *hctx = con->plugin_ctx[p->id];
- if (hctx) free(hctx);
+ if (hctx) {
+ free(hctx);
+ con->plugin_ctx[p->id] = NULL;
+ }
UNUSED(srv);
return HANDLER_GO_ON;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/network.c new/lighttpd-1.4.45/src/network.c
--- old/lighttpd-1.4.44/src/network.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/src/network.c 2017-01-14 06:05:17.000000000 +0100
@@ -994,7 +994,7 @@
s->ssl_pemfile);
return -1;
}
- SSL_CTX_set_default_read_ahead(s->ssl_ctx, 1);
+ SSL_CTX_set_default_read_ahead(s->ssl_ctx, s->ssl_read_ahead);
SSL_CTX_set_mode(s->ssl_ctx, SSL_CTX_get_mode(s->ssl_ctx)
| SSL_MODE_ENABLE_PARTIAL_WRITE
| SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/tests/docroot/www/cgi.pl new/lighttpd-1.4.45/tests/docroot/www/cgi.pl
--- old/lighttpd-1.4.44/tests/docroot/www/cgi.pl 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/tests/docroot/www/cgi.pl 2017-01-14 06:05:17.000000000 +0100
@@ -1,7 +1,7 @@
#!/usr/bin/env perl
if ($ENV{"QUERY_STRING"} eq "internal-redir") {
- print "Location: /cgi.pl\r\n\r\n";
+ print "Location: /cgi-pathinfo.pl/foo\r\n\r\n";
exit 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/tests/fcgi-responder.c new/lighttpd-1.4.45/tests/fcgi-responder.c
--- old/lighttpd-1.4.44/tests/fcgi-responder.c 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/tests/fcgi-responder.c 2017-01-14 06:05:17.000000000 +0100
@@ -11,7 +11,7 @@
#include
int main (void) {
- int num_requests = 2;
+ int num_requests = 1;
while (num_requests > 0 &&
FCGI_Accept() >= 0) {
@@ -50,6 +50,8 @@
} else {
printf("test123");
}
+
+ if (0 == num_requests) FCGI_Finish();
}
return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/tests/mod-fastcgi.t new/lighttpd-1.4.45/tests/mod-fastcgi.t
--- old/lighttpd-1.4.44/tests/mod-fastcgi.t 2016-12-24 06:26:55.000000000 +0100
+++ new/lighttpd-1.4.45/tests/mod-fastcgi.t 2017-01-14 06:05:17.000000000 +0100
@@ -7,7 +7,7 @@
}
use strict;
-use Test::More tests => 60;
+use Test::More tests => 59;
use LightyTest;
my $tf = LightyTest->new();
@@ -348,7 +348,7 @@
SKIP: {
- skip "no fcgi-responder found", 11 unless -x $tf->{BASEDIR}."/tests/fcgi-responder" || -x $tf->{BASEDIR}."/tests/fcgi-responder.exe";
+ skip "no fcgi-responder found", 10 unless -x $tf->{BASEDIR}."/tests/fcgi-responder" || -x $tf->{BASEDIR}."/tests/fcgi-responder.exe";
$tf->{CONFIGFILE} = 'fastcgi-responder.conf';
ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die();
@@ -409,17 +409,9 @@
$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'test123' } ];
ok($tf->handle_http($t) == 0, 'killing fastcgi and wait for restart');
- select(undef, undef, undef, .2);
- $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'test123' } ];
- ok($tf->handle_http($t) == 0, 'killing fastcgi and wait for restart');
-
-
- select(undef, undef, undef, .2);
+ # (might take lighttpd 1 sec to detect backend exit)
+ select(undef, undef, undef, .9);
+ select(undef, undef, undef, .1) while (!$tf->listening_on(10000));
$t->{REQUEST} = ( <