b345461070
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> SVN-Revision: 47161
146 lines
3.5 KiB
Makefile
146 lines
3.5 KiB
Makefile
#
|
|
# Copyright (C) 2010-2015 Jo-Philipp Wich <jow@openwrt.org>
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=uhttpd
|
|
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:=7ed2edc40dd6d0171266f3bfbc96466e1d25e3cd
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
|
|
PKG_LICENSE:=ISC
|
|
|
|
PKG_BUILD_DEPENDS = ustream-ssl
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/cmake.mk
|
|
|
|
define Package/uhttpd/default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Web Servers/Proxies
|
|
TITLE:=uHTTPd - tiny, single threaded HTTP server
|
|
endef
|
|
|
|
define Package/uhttpd
|
|
$(Package/uhttpd/default)
|
|
DEPENDS:=+libubox
|
|
endef
|
|
|
|
define Package/uhttpd/description
|
|
uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
|
|
support. It is intended as a drop-in replacement for the Busybox
|
|
HTTP daemon.
|
|
endef
|
|
|
|
define Package/uhttpd/config
|
|
config PACKAGE_uhttpd_debug
|
|
bool "Build with debug messages"
|
|
default n
|
|
endef
|
|
|
|
|
|
define Package/uhttpd-mod-tls
|
|
$(Package/uhttpd/default)
|
|
TITLE+= (TLS plugin)
|
|
DEPENDS:=uhttpd \
|
|
+PACKAGE_uhttpd-mod-tls_polarssl:libustream-polarssl \
|
|
+PACKAGE_uhttpd-mod-tls_cyassl:libustream-cyassl \
|
|
+PACKAGE_uhttpd-mod-tls_openssl:libustream-openssl
|
|
endef
|
|
|
|
define Package/uhttpd-mod-tls/description
|
|
The TLS plugin adds HTTPS support to uHTTPd.
|
|
endef
|
|
|
|
define Package/uhttpd-mod-tls/config
|
|
choice
|
|
depends on PACKAGE_uhttpd-mod-tls
|
|
prompt "TLS Provider"
|
|
default PACKAGE_uhttpd-mod-tls_polarssl
|
|
|
|
config PACKAGE_uhttpd-mod-tls_polarssl
|
|
bool "PolarSSL"
|
|
|
|
config PACKAGE_uhttpd-mod-tls_cyassl
|
|
bool "CyaSSL"
|
|
|
|
config PACKAGE_uhttpd-mod-tls_openssl
|
|
bool "OpenSSL"
|
|
endchoice
|
|
endef
|
|
|
|
define Package/uhttpd-mod-lua
|
|
$(Package/uhttpd/default)
|
|
TITLE+= (Lua plugin)
|
|
DEPENDS:=uhttpd +liblua
|
|
endef
|
|
|
|
define Package/uhttpd-mod-lua/description
|
|
The Lua plugin adds a CGI-like Lua runtime interface to uHTTPd.
|
|
endef
|
|
|
|
|
|
define Package/uhttpd-mod-ubus
|
|
$(Package/uhttpd/default)
|
|
TITLE+= (ubus plugin)
|
|
DEPENDS:=uhttpd +libubus +libblobmsg-json
|
|
endef
|
|
|
|
define Package/uhttpd-mod-ubus/description
|
|
The ubus plugin adds a HTTP/JSON RPC proxy for ubus and publishes the
|
|
session.* namespace and procedures.
|
|
endef
|
|
|
|
define Package/uhttpd/conffiles
|
|
/etc/config/uhttpd
|
|
/etc/uhttpd.crt
|
|
/etc/uhttpd.key
|
|
endef
|
|
|
|
ifneq ($(CONFIG_USE_GLIBC),)
|
|
TARGET_CFLAGS += -D_DEFAULT_SOURCE
|
|
endif
|
|
|
|
TARGET_LDFLAGS += -lcrypt
|
|
|
|
CMAKE_OPTIONS = -DTLS_SUPPORT=on
|
|
|
|
define Package/uhttpd/install
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/uhttpd.init $(1)/etc/init.d/uhttpd
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) ./files/uhttpd.config $(1)/etc/config/uhttpd
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd $(1)/usr/sbin/uhttpd
|
|
endef
|
|
|
|
define Package/uhttpd-mod-tls/install
|
|
true
|
|
endef
|
|
|
|
define Package/uhttpd-mod-lua/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_lua.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/uhttpd-mod-ubus/install
|
|
$(INSTALL_DIR) $(1)/usr/lib $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_ubus.so $(1)/usr/lib/
|
|
$(INSTALL_DATA) ./files/ubus.default $(1)/etc/uci-defaults/00_uhttpd_ubus
|
|
endef
|
|
|
|
|
|
$(eval $(call BuildPackage,uhttpd))
|
|
$(eval $(call BuildPackage,uhttpd-mod-tls))
|
|
$(eval $(call BuildPackage,uhttpd-mod-lua))
|
|
$(eval $(call BuildPackage,uhttpd-mod-ubus))
|