X-Git-Url: http://git.plutz.net/?p=cgilite;a=blobdiff_plain;f=server.sh;h=a4229b252c90a409348c909e85df6f6027ff3384;hp=dc97607e3f41475325d7d1e15b5302e9acf0a83a;hb=e6a5a9a5f79a00ff6645057b16f61666cabd9efc;hpb=0bcf2131288e43e7c2ec533f1918dfd4235309aa diff --git a/server.sh b/server.sh index dc97607..a4229b2 100755 --- a/server.sh +++ b/server.sh @@ -71,9 +71,10 @@ HTTP_format(){ /^\r?$/!{H;n;bA} g - s;^(\r?\n)*;; + s;^(\r?\n)*;;; + s;([^\r])\n;\1\r\n;g; aConnection: close\r\n\r - /^HTTP\/[0-9]\.[0-9] [1-5][0-9][0-9] .*/bX + /^Status: *[1-5][0-9][0-9] .*/{s;^Status: *;HTTP/1.1 ;; bX} s;^(.+\n)?Location: .*$;HTTP/1.1 302 Found\r\n&; s;^(.+\n)?Content-Type: .*$;HTTP/1.1 200 OK\r\n&; @@ -84,3 +85,10 @@ HTTP_format(){ bX ' } + +PATH_INFO="$(invalidate "${PATH_INFO}" '(^|.*/)\.\./.*' '')" + +if [ -z "$QUERY_STRING" -a -f "$_DATA/$PATH_INFO" ]; then + . "$_EXEC/shcgi/static.sh" "$_DATA/$PATH_INFO" + exit 0 +fi |HTTP_format