rendered paste body#!/bin/bash## webd httpd server# Copyright (c) 2006 Target Creation Ltd#dynamic_request (){ export QUERY_STRING="$query" echo -e "HTTP/1.1 200 OK\r" "$filename" echo -e "\r" exit 0}static_request(){ echo -e "HTTP/1.1 200 OK\r" echo -e "Content-Type: `/usr/bin/file -bi \"$filename\"`\r" echo -e "\r" cat "$filename" echo -e "\r"}dir_list(){ echo -e "HTTP/1.1 200 OK\r" echo -e "Content-Type: text/html;charset=UTF-8\r" echo -e "\r" tmpl_header; echo -e "<h1>Listing of $url</h1>\r" echo -e "<pre>Details Name</pre>\r" echo -e "<pre>" ( cd "$filename" for f in `ls`; do #desc=`ls -ld "$f"` #desc=`ls -ld "$f"` desc=`ls -l "$f"` desc="${desc% $f}" href="${url%/}/$f" echo -e "$desc <a href=\"$f\">$f</a>" done ) echo "</pre>" echo -e "\r" echo -e "\r" tmpl_footer; echo -e "\r"}404_page (){ echo -e "HTTP/1.1 404 Not Found\r" echo -e "Content-Type: text/html;charset=UTF-8\r" echo -e "\r" tmpl_header; echo -e "<h1>404: Resource Not Found</h1>\r" echo -e "The resource you requested could not be found on this server. Please \r" echo -e "ensure you typed the address/url correctly and try again.\r" tmpl_footer; echo -e "\r"}tmpl_header (){ cat "/home/webd/inc/header.html"}tmpl_footer (){ cat "/home/webd/inc/footer.html"}base=/home/webdread requestwhile /bin/true; do read header [ "$header" == $'\r' ] && break;doneurl="${request#GET }"url="${url% HTTP/*}"query="${url#*\?}"url="${url%%\?*}"filename="$base$url"if [ "$query" != "$url" -a -x "$filename" ]; then dynamic_request;fiif [ -f "$filename" ]; then if [ -x "$filename" ]; then dynamic_request; fi static_request;else if [ -d "$filename" ]; then if [ -f "$filename/index.pl" ]; then filename="${filename}/index.pl" if [ -x "$filename" ]; then dynamic_request; fi static_request; else dir_list; fi else 404_page; fifi