From ad9e0c4d17fe4a35078aed98a4711dcfa41aaa28 Mon Sep 17 00:00:00 2001 From: Nicolas Thill Date: Sun, 1 Feb 2009 14:50:30 +0000 Subject: [PATCH] [packages] add hiawatha web server (closes: #4356, thanks to Raphael Huck) SVN-Revision: 14339 --- net/hiawatha/Makefile | 55 +++++++++ net/hiawatha/files/httpd.conf | 115 ++++++++++++++++++ net/hiawatha/files/mimetype.conf | 16 +++ .../100-add_x_requested_http_headers.patch | 11 ++ 4 files changed, 197 insertions(+) create mode 100644 net/hiawatha/Makefile create mode 100644 net/hiawatha/files/httpd.conf create mode 100644 net/hiawatha/files/mimetype.conf create mode 100644 net/hiawatha/patches/100-add_x_requested_http_headers.patch diff --git a/net/hiawatha/Makefile b/net/hiawatha/Makefile new file mode 100644 index 0000000000..5a0556ab92 --- /dev/null +++ b/net/hiawatha/Makefile @@ -0,0 +1,55 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_NAME:=hiawatha +PKG_VERSION:=6.10 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://www.hiawatha-webserver.org/files/ +PKG_MD5SUM:=78d364b586a766a428b94b4461d4aa04 + +include $(INCLUDE_DIR)/package.mk + +define Package/hiawatha + CATEGORY:=Network + SECTION:=net + SUBMENU:=Web + TITLE:=A very lightweight web server + URL:=http://www.hiawatha-webserver.org/ + DEPENDS:=+libpthread +endef + +define Package/hiawatha/description + Hiawatha is a webserver for Unix. +endef + +CONFIGURE_ARGS+= \ + --disable-cache \ + --disable-ssl \ + --disable-ipv6 + +CONFIGURE_VARS+= \ + ac_cv_file__dev_urandom=yes + +define Package/hiawatha/conffiles +/etc/hiawatha/httpd.conf +/etc/hiawatha/mimetype.conf +endef + +define Package/hiawatha/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/hiawatha $(1)/usr/sbin/ + $(INSTALL_DIR) $(1)/etc/hiawatha + $(INSTALL_DATA) ./files/httpd.conf $(1)/etc/hiawatha/ + $(INSTALL_DATA) ./files/mimetype.conf $(1)/etc/hiawatha/ +endef + +$(eval $(call BuildPackage,hiawatha)) diff --git a/net/hiawatha/files/httpd.conf b/net/hiawatha/files/httpd.conf new file mode 100644 index 0000000000..b6d02d3519 --- /dev/null +++ b/net/hiawatha/files/httpd.conf @@ -0,0 +1,115 @@ +# Hiawatha main configuration file +# + + +# GENERAL SETTINGS +# +#ServerId = www-data +ConnectionsTotal = 150 +ConnectionsPerIP = 10 +SystemLogfile = /var/log/hiawatha/system.log +GarbageLogfile = /var/log/hiawatha/garbage.log + + +# BINDING SETTINGS +# A binding is where a client can connect to. +# +Binding { + Port = 80 +# Interface = 127.0.0.1 +# MaxKeepAlive = 30 +# TimeForRequest = 3,20 +} +# +#Binding { +# Port = 443 +# Interface = ::1 +# MaxKeepAlive = 30 +# TimeForRequest = 3,20 +# ServerKey = hiawatha.pem +# UseSSL = yes +#} + + +# BANNING SETTINGS +# Deny service to clients who misbehave. +# +#BanOnGarbage = 300 +#BanOnMaxPerIP = 60 +#BanOnMaxReqSize = 300 +#KickOnBan = yes +#RebanDuringBan = yes + + +# COMMON GATEWAY INTERFACE (CGI) SETTINGS +# These settings can be used to run CGI applications. Use the 'php-fcgi' +# tool to start PHP as a FastCGI daemon. +# +#CGIhandler = /usr/bin/php-cgi:php +#CGIhandler = /usr/bin/perl:pl +#CGIhandler = /usr/bin/python:py +#CGIextension = cgi +# +#FastCGIserver { +# FastCGIid = PHP4 +# ConnectTo = 127.0.0.1:2004 +# Extension = php, php4 +#} +# +#FastCGIserver { +# FastCGIid = PHP5 +# ConnectTo = 10.0.0.100:2005, 10.0.0.101:2005 +# Extension = php, php5 +# SessionTimeout = 30 +#} + + +# URL TOOLKIT +# These URL toolkit rules are made for the Skeleton PHP framework, +# which can be downloaded from: http://skeleton.leisink.org/ +# +#UrlToolkit { +# ToolkitID = skeleton +# Match ^/$ Return +# RequestURI isfile Exit +# Match (.*)\?(.*) Rewrite $1&$2 +# Match /(.*) Rewrite /index.php?page=$1 +#} + + +# DEFAULT WEBSITE +# It is wise to use your IP address as the hostname of the default website +# and give it a blank webpage. By doing so, automated webscanners won't find +# your possible vulnerable website. +# +Hostname = 127.0.0.1 +WebsiteRoot = /www/ +StartFile = index.html +AccessLogfile = /var/log/hiawatha/access.log +ErrorLogfile = /var/log/hiawatha/error.log +#ErrorHandler = 404:/error.cgi + + +# VIRTUAL HOSTS +# Use a VirtualHost section to declare the websites you want to host. +# +#VirtualHost { +# Hostname = www.my-domain.com +# WebsiteRoot = /var/www/my-domain/public +# StartFile = index.php +# AccessLogfile = /var/www/my-domain/log/access.log +# ErrorLogfile = /var/www/my-domain/log/error.log +# ExecuteCGI = yes +# FastCGI = PHP4 +# TimeForCGI = 5 +#} + + +# DIRECTORY SETTINGS +# You can specify some settings per directory. +# +#Directory { +# Path = /home/baduser +# ExecuteCGI = no +# UploadSpeed = 10,2 +#} diff --git a/net/hiawatha/files/mimetype.conf b/net/hiawatha/files/mimetype.conf new file mode 100644 index 0000000000..7e876c796d --- /dev/null +++ b/net/hiawatha/files/mimetype.conf @@ -0,0 +1,16 @@ +application/pdf pdf +application/octet-stream class +application/x-ns-proxy-autoconfig pac +application/x-shockwave-flash swf +audio/x-wav wav +image/gif gif +image/jpeg jpg +image/jpeg jpeg +image/png png +text/css css +text/html html +text/html htm +text/javascript js +text/plain txt +text/xml dtd +text/xml xml diff --git a/net/hiawatha/patches/100-add_x_requested_http_headers.patch b/net/hiawatha/patches/100-add_x_requested_http_headers.patch new file mode 100644 index 0000000000..630db8b3db --- /dev/null +++ b/net/hiawatha/patches/100-add_x_requested_http_headers.patch @@ -0,0 +1,11 @@ +--- a/envir.c ++++ b/envir.c +@@ -189,6 +189,8 @@ void set_environment(t_session *session, + headerfield_to_environment(session, fcgi_buffer, "User-Agent:", "HTTP_USER_AGENT"); + headerfield_to_environment(session, fcgi_buffer, "Via:", "HTTP_VIA"); + headerfield_to_environment(session, fcgi_buffer, "X-Forwarded-For:", "HTTP_X_FORWARDED_FOR"); ++ headerfield_to_environment(session, fcgi_buffer, "X-Requested-With:", "HTTP_X_REQUESTED_WITH"); ++ headerfield_to_environment(session, fcgi_buffer, "X-Requested-Handler:", "HTTP_X_REQUESTED_HANDLER"); + + if (session->path_info != NULL) { + add_to_environment(fcgi_buffer, "PATH_INFO", session->path_info); -- 2.30.2