diff options
Diffstat (limited to 'htgen.sh')
-rwxr-xr-x | htgen.sh | 178 |
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 "# [1;31mFAIL[m" - 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 |