From 80de02162d221771af3ef98ce4b2c25dfea1e7e7 Mon Sep 17 00:00:00 2001 From: "\"Steven J. Hill\"" Date: Tue, 17 Jul 2007 00:23:31 +0000 Subject: [PATCH] Add new 'tinyhttpd' package and move all other httpd servers to be disabled if the BusyBox server is being used. --- package/tinyhttpd/Config.in | 8 ++++ package/tinyhttpd/S85tinyhttpd | 33 +++++++++++++ package/tinyhttpd/tinyhttpd.mk | 56 ++++++++++++++++++++++ package/tinyhttpd/tinyhttpd.patch | 80 +++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+) create mode 100644 package/tinyhttpd/Config.in create mode 100755 package/tinyhttpd/S85tinyhttpd create mode 100644 package/tinyhttpd/tinyhttpd.mk create mode 100644 package/tinyhttpd/tinyhttpd.patch diff --git a/package/tinyhttpd/Config.in b/package/tinyhttpd/Config.in new file mode 100644 index 0000000000..e4ea690d68 --- /dev/null +++ b/package/tinyhttpd/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_TINYHTTPD + bool "tinyhttpd" + default n + help + A relatively simple webserver written as a school project. It is + exceedingly simple, threaded and handles basic CGI scripts. + + http://sourceforge.net/projects/tinyhttpd/ diff --git a/package/tinyhttpd/S85tinyhttpd b/package/tinyhttpd/S85tinyhttpd new file mode 100755 index 0000000000..a1f4ce8368 --- /dev/null +++ b/package/tinyhttpd/S85tinyhttpd @@ -0,0 +1,33 @@ +#! /bin/sh + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +NAME=tinyhttpd + +test -x /usr/sbin/$NAME || exit 0 +mkdir -p /var/www + +case "$1" in + start) + echo -n "Starting $NAME: " + $NAME > /dev/null & + echo "done" + ;; + stop) + echo -n "Stopping $NAME: " + killall -9 $NAME + echo "done" + ;; + restart) + echo -n "Restarting $NAME: " + killall -9 $NAME + sleep 1 + $NAME > /dev/null & + echo "done" + ;; + *) + echo "Usage: /etc/init.d/S85tinyhttpd {start|stop|restart}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/package/tinyhttpd/tinyhttpd.mk b/package/tinyhttpd/tinyhttpd.mk new file mode 100644 index 0000000000..af13d7d182 --- /dev/null +++ b/package/tinyhttpd/tinyhttpd.mk @@ -0,0 +1,56 @@ +############################################################# +# +# tinyhttpd +# +############################################################# +TINYHTTPD_VER:=0.1.0 +TINYHTTPD_SOURCE:=tinyhttpd-$(TINYHTTPD_VER).tar.gz +TINYHTTPD_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/tinyhttpd/$(TINYHTTPD_SOURCE) +TINYHTTPD_DIR:=$(BUILD_DIR)/tinyhttpd-$(TINYHTTPD_VER) +TINYHTTPD_CAT:=$(ZCAT) +TINYHTTPD_BINARY:=httpd +TINYHTTPD_TARGET_BINARY:=usr/sbin/tinyhttpd + +$(DL_DIR)/$(TINYHTTPD_SOURCE): + $(WGET) -P $(DL_DIR) $(TINYHTTPD_SITE)/$(TINYHTTPD_SOURCE) + +tinyhttpd-source: $(DL_DIR)/$(TINYHTTPD_SOURCE) + +############################################################# +# +# build tinyhttpd for use on the target system +# +############################################################# +$(TINYHTTPD_DIR)/.unpacked: $(DL_DIR)/$(TINYHTTPD_SOURCE) + $(TINYHTTPD_CAT) $(DL_DIR)/$(TINYHTTPD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(TINYHTTPD_DIR) package/tinyhttpd/ tinyhttpd\*.patch + touch $(TINYHTTPD_DIR)/.unpacked + +$(TINYHTTPD_DIR)/$(TINYHTTPD_BINARY): $(TINYHTTPD_DIR)/.unpacked + $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(TINYHTTPD_DIR) + +$(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY): $(TINYHTTPD_DIR)/$(TINYHTTPD_BINARY) + $(INSTALL) -m 0755 $(TINYHTTPD_DIR)/$(TINYHTTPD_BINARY) $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY) + $(STRIP) --strip-unneeded $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY) + $(INSTALL) -m 0755 package/tinyhttpd/S85tinyhttpd $(TARGET_DIR)/etc/init.d + mkdir -p $(TARGET_DIR)/var/www + +tinyhttpd: uclibc $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY) + +tinyhttpd-clean: + $(MAKE) -C $(TINYHTTPD_DIR) clean + @rm -f $(TARGET_DIR)/$(TINYHTTPD_TARGET_BINARY) + @rm -f $(TARGET_DIR)/etc/init.d/S85tinyhttpd + @rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/var/www + +tinyhttpd-dirclean: + rm -rf $(TINYHTTPD_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_TINYHTTPD)),y) +TARGETS+=tinyhttpd +endif diff --git a/package/tinyhttpd/tinyhttpd.patch b/package/tinyhttpd/tinyhttpd.patch new file mode 100644 index 0000000000..02eb189af0 --- /dev/null +++ b/package/tinyhttpd/tinyhttpd.patch @@ -0,0 +1,80 @@ +diff -ur tinyhttpd-0.1.0/httpd.c tinyhttpd-0.1.0-patched/httpd.c +--- tinyhttpd-0.1.0/httpd.c 2001-04-21 19:13:13.000000000 -0500 ++++ tinyhttpd-0.1.0-patched/httpd.c 2007-07-02 09:19:27.000000000 -0500 +@@ -4,14 +4,6 @@ + * CSE 4344 (Network concepts), Prof. Zeigler + * University of Texas at Arlington + */ +-/* This program compiles for Sparc Solaris 2.6. +- * To compile for Linux: +- * 1) Comment out the #include line. +- * 2) Comment out the line that defines the variable newthread. +- * 3) Comment out the two lines that run pthread_create(). +- * 4) Uncomment the line that runs accept_request(). +- * 5) Remove -lsocket from the Makefile. +- */ + #include + #include + #include +@@ -22,7 +14,6 @@ + #include + #include + #include +-#include + #include + #include + +@@ -30,7 +21,6 @@ + + #define SERVER_STRING "Server: jdbhttpd/0.1.0\r\n" + +-void accept_request(int); + void bad_request(int); + void cat(int, FILE *); + void cannot_execute(int); +@@ -102,7 +92,7 @@ + } + } + +- sprintf(path, "htdocs%s", url); ++ sprintf(path, "/var/www%s", url); + if (path[strlen(path) - 1] == '/') + strcat(path, "index.html"); + if (stat(path, &st) == -1) { +@@ -475,11 +465,10 @@ + int main(void) + { + int server_sock = -1; +- u_short port = 0; ++ u_short port = 80; + int client_sock = -1; + struct sockaddr_in client_name; + int client_name_len = sizeof(client_name); +- pthread_t newthread; + + server_sock = startup(&port); + printf("httpd running on port %d\n", port); +@@ -491,9 +480,7 @@ + &client_name_len); + if (client_sock == -1) + error_die("accept"); +- /* accept_request(client_sock); */ +- if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0) +- perror("pthread_create"); ++ accept_request(client_sock); + } + + close(server_sock); +diff -ur tinyhttpd-0.1.0/Makefile tinyhttpd-0.1.0-patched/Makefile +--- tinyhttpd-0.1.0/Makefile 2001-04-21 17:03:39.000000000 -0500 ++++ tinyhttpd-0.1.0-patched/Makefile 2007-07-02 10:29:41.000000000 -0500 +@@ -1,7 +1,7 @@ + all: httpd + + httpd: httpd.c +- gcc -W -Wall -lsocket -lpthread -o httpd httpd.c ++ $(CC) $(CFLAGS) $(LDFLAGS) -W -Wall -lpthread -o httpd httpd.c + + clean: +- rm httpd ++ rm -f httpd -- 2.30.2