summaryrefslogtreecommitdiffstats
path: root/htgen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'htgen.sh')
-rwxr-xr-xhtgen.sh178
1 files changed, 0 insertions, 178 deletions
diff --git a/htgen.sh b/htgen.sh
deleted file mode 100755
index 3fa28d0..0000000
--- a/htgen.sh
+++ /dev/null
@@ -1,178 +0,0 @@
-#! /bin/sh
-set -euf
-
-
-# TODO Cache-Control [RFC 2616, Section 14.9]
-# TODO Accept-Encoding: gzip,deflate
-# TODO Keep-Alive: 300
-# TODO Connection: keep-alive
-# TODO /robots.txt
-
-Server='htgen'
-Request="$(sed 's/\r$//;/^$/q')"
-date="`date '+%Y-%m-%d %H:%M:%S'`"
-
-##
-## Parse request.
-##
-Request_Line=
-eval "$(echo "$Request" | sed -rn '
- 1{s^([a-zA-Z]+) ([a-zA-Z0-9?&+*/.-]+) HTTP/([0-9]+\.[0-9]+)$\
- Request_Line="&"\
- Method="\1"\
- Request_URI="\2"\
- HTTP_Version="\3"\
- p;t;i\
- Request_Line= # invalid request
- q
- }
- s/^Host: ([a-zA-Z0-9?+&/:.-]+)$/Host="\1"/p
-')"
-
-##
-## Log request.
-##
-# TODO real logging
-cat>&2<<EOF
-
-## $date, $TCPREMOTEIP:$TCPREMOTEPORT $Request_Line
-$Request
-EOF
-
-##
-## Handle request.
-##
-if test -z "$Request_Line" ; then
- echo "# FAIL"
- exit -23
-fi >&2
-
-# TODO Date: `date --utc`
-
-case "$Host" in
- src.mine.nu:42380|src.mine.nu|vix|$HOSTNAME:42380|localhost:42380)
- case "${Method-Invalid-Request}" in
- GET|HEAD)
- case "$Request_URI" in
- /dump.txt)
- body_type=file
- body=~/public_html$Request_URI
- status=200
- cat<<EOF
-HTTP/1.0 200 OK
-Connection: close
-Content-Length: `du -b $body | cut -f1`
-Content-Type: text/plain; charset=utf-8
-Server: $Server
-
-EOF
- ;;
- /style5.css)
- body_type=file
- body=~/public_html$Request_URI
- status=200
- cat<<EOF
-HTTP/1.0 200 OK
-Connection: close
-Content-Length: `du -b $body | cut -f1`
-Content-Type: text/css
-Server: $Server
-
-EOF
- ;;
- /favicon5.png|/favicon2.png)
- body_type=file
- body=~/public_html$Request_URI
- status=200
- cat<<EOF
-HTTP/1.0 200 OK
-Connection: close
-Content-Length: `du -b $body | cut -f1`
-Content-Type: image/png
-Server: $Server
-Cache-Control: public
-
-EOF
- ;;
- /|/index.html)
- make -C ~/public_html index.html >&2
- #### XXX this is a hack:
- ### make -C ~/public_html index.html >&2
- # TODO 304 Not Modified
- # TODO better max-age(?)
- # TODO may we use more than one Cache-Control?
- body_type=file
- body=~/public_html/index.html
- status=200
- cat<<EOF
-HTTP/1.0 200 OK
-Content-Type: text/html; charset=UTF-8
-Server: $Server
-Connection: close
-Content-Length: `du -b $body | cut -f1`
-Cache-Control: max-age=60
-
-EOF
- ;;
- *)
- body_type=string
- body="404 Not found: $Request_URI"
- status=404
- cat<<EOF
-HTTP/1.0 404 Not Found
-Content-Type: text/plain; charset=UTF-8
-Server: $Server
-Connection: close
-Content-Length: ${#body}
-
-EOF
- ;;
- esac
- ;;
- *) # Method
- body_type=string
- body="501 Not Implemented: $Method"
- status=501
- cat<<EOF
-HTTP/1.0 501 Not Implemented
-Content-Type: text/plain; charset=UTF-8
-Server: $Server
-Connection: close
-Content-Length: ${#body}
-Cache-Control: public
-
-EOF
- ;;
- esac
- ;;
- *) # Host
- body_type=string
- body="403 Forbidden"
- status=403
- cat<<EOF
-HTTP/1.1 403 Forbidden
-Content-Type: text/plain; charset=UTF-8
-Connection: close
-Content-Length: ${#body}
-Cache-Control: public
-
-EOF
- ;;
-esac
-
-##
-## Print message-body.
-##
-case "$Method" in
- GET)
- case "$body_type" in
- file) cat "$body" ;;
- string) echo -n "$body" ;;
- esac
- ;;
-esac
-
-
-# Success (mod transfer)
-echo "# OK: $status" >&2
-exit