aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2015-10-07 22:20:55 +0000
committerJo-Philipp Wich <jow@openwrt.org>2015-10-07 22:20:55 +0000
commitaf9ce72546ee8260fad503b6dd05761ba7a2345e (patch)
treec264ade383ec5ac0387790354d543a5fff845daf
parent3a5b8f93ecf30372271a42388c4075c41b1ec724 (diff)
downloadupstream-af9ce72546ee8260fad503b6dd05761ba7a2345e.tar.gz
upstream-af9ce72546ee8260fad503b6dd05761ba7a2345e.tar.bz2
upstream-af9ce72546ee8260fad503b6dd05761ba7a2345e.zip
CC: uhttpd: fix keep-alive bug (#20607, #20661)
The two commits 5162e3b0ee7bd1d0fd6e75e1ca7993a1834b5291 "allow request handlers to disable chunked reponses" and 618493e378e2239f0d30902e47adfa134e649fdc "file: disable chunked encoding for file responses" broke the chunked transfer encoding handling for proc responses in keep-alive connections that followed a file response with http status 204 or 304. The effect of this bug is that cgi responses following a 204 or 304 one where sent neither in chunked encoding nor with a content-length header, causing browsers to stall until the keep alive timeout was reached. Fix the logic flaw by inverting the chunk prevention flag in the client state and by testing the chunked encoding preconditions every time instead of once upon client (re-)initialization. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> Backport of r47161 git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@47162 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/network/services/uhttpd/Makefile4
-rwxr-xr-xpackage/network/services/uhttpd/files/uhttpd.init5
2 files changed, 2 insertions, 7 deletions
diff --git a/package/network/services/uhttpd/Makefile b/package/network/services/uhttpd/Makefile
index 51f2bdc1ce..a9a535aee8 100644
--- a/package/network/services/uhttpd/Makefile
+++ b/package/network/services/uhttpd/Makefile
@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=uhttpd
-PKG_VERSION:=2015-09-07
+PKG_VERSION:=2015-10-08
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://nbd.name/uhttpd2.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=993cace15114a0f06f720f34a4748ab54b695f0d
+PKG_SOURCE_VERSION:=7ed2edc40dd6d0171266f3bfbc96466e1d25e3cd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
PKG_LICENSE:=ISC
diff --git a/package/network/services/uhttpd/files/uhttpd.init b/package/network/services/uhttpd/files/uhttpd.init
index 1ebe38e8d3..a3e09c44e7 100755
--- a/package/network/services/uhttpd/files/uhttpd.init
+++ b/package/network/services/uhttpd/files/uhttpd.init
@@ -131,11 +131,6 @@ start_instance()
}
procd_close_instance
-
- # Check if daemon is running, if not then
- # re-execute in foreground to display error.
-# sleep 1 && service_check $UHTTPD_BIN || \
-# $UHTTPD_BIN -f $UHTTPD_ARGS
}
service_triggers()