summaryrefslogtreecommitdiff
path: root/bin/contrib/rc-httpd/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'bin/contrib/rc-httpd/handlers')
-rwxr-xr-xbin/contrib/rc-httpd/handlers/authorize6
-rwxr-xr-xbin/contrib/rc-httpd/handlers/cgi46
-rwxr-xr-xbin/contrib/rc-httpd/handlers/dir-index111
-rwxr-xr-xbin/contrib/rc-httpd/handlers/error43
-rwxr-xr-xbin/contrib/rc-httpd/handlers/redirect30
-rwxr-xr-xbin/contrib/rc-httpd/handlers/serve-static43
-rwxr-xr-xbin/contrib/rc-httpd/handlers/static-or-cgi14
-rwxr-xr-xbin/contrib/rc-httpd/handlers/static-or-index5
8 files changed, 0 insertions, 298 deletions
diff --git a/bin/contrib/rc-httpd/handlers/authorize b/bin/contrib/rc-httpd/handlers/authorize
deleted file mode 100755
index ea4db3e..0000000
--- a/bin/contrib/rc-httpd/handlers/authorize
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/rc
-if(~ $REMOTE_USER ''){
- extra_headers=($extra_headers 'WWW-Authenticate: Basic realm="'$"SERVER_NAME'"')
- error 401
- exit
-}
diff --git a/bin/contrib/rc-httpd/handlers/cgi b/bin/contrib/rc-httpd/handlers/cgi
deleted file mode 100755
index 2c9a9b9..0000000
--- a/bin/contrib/rc-httpd/handlers/cgi
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/rc
-fn filter_headers{
- response=(200 OK)
- lines=''
- done=false
- while(~ $done false){
- line=`{getline}
- head=`{echo $line | awk '{print tolower($1)}'}
- if(~ $head status:*)
- response=`{echo $line | awk '{$1="" ; print}'}
- if not if(~ $line '')
- done=true
- if not
- lines=$"lines^$"line^$cr^'
-'
- }
- echo 'HTTP/1.1' $"response^$cr
- echo -n $"lines
- do_log $response(1)
-}
-
-fn run_cgi {
- path=$cgi_path exec $"cgi_bin $params || echo 'Status: 500'
-}
-
-cgi_bin=$1
-cgi_dir=.
-if(! ~ $#* 1)
- cgi_dir=$*($#*)
-if not if(~ $"cgi_bin /*){
- cgi_dir=`{basename -d $"cgi_bin}
- cgi_dir=$"cgi_dir
-}
-if(! ~ $"cgi_bin */*)
- cgi_bin=./$"cgi_bin
-if(! builtin cd $"cgi_dir >[2]/dev/null || ! test -x $"cgi_bin){
- error 500
- exit
-}
-
-run_cgi | {
- filter_headers
- emit_extra_headers
- echo $cr
- exec cat
-}
diff --git a/bin/contrib/rc-httpd/handlers/dir-index b/bin/contrib/rc-httpd/handlers/dir-index
deleted file mode 100755
index 00ff8ce..0000000
--- a/bin/contrib/rc-httpd/handlers/dir-index
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/rc
-PATH_INFO=`{echo $PATH_INFO | urldecode.awk}
-full_path=$"FS_ROOT^$"PATH_INFO
-full_path=$"full_path
-if(! test -d $full_path){
- error 404
- exit
-}
-if(! test -r $full_path -x $full_path){
- error 503
- exit
-}
-do_log 200
-builtin cd $full_path
-if(~ $"NOINDEXFILE ^ $"NOINDEX ''){
- ifile=index.htm*
- if(! ~ $ifile(1) *'*'){
- PATH_INFO=$ifile(1)
- FS_ROOT=''
- exec serve-static
- }
-}
-title=`{echo $SITE_TITLE | sed s,%s,^$"PATH_INFO^,}
-title=$"title
-lso=()
-switch($2){
-case size
- # ls has no option to sort by size
- # could pipe it through sort, I suppose
-case date
- lso=-t
-}
-echo 'HTTP/1.1 200 OK'^$cr
-emit_extra_headers
-echo 'Content-type: text/html'^$cr
-echo $cr
-echo '<html>
-<head>
-<title>'^$title^'</title>
-<style type="text/css">
- .size {
- text-align: right;
- padding-right: 4pt;
- }
- .day {
- text-align: right;
- padding-right: 3pt;
- }
- .datetime {
- text-align: right;
- }
- .name {
- text-align: right;
- padding-left: 3pt;
- }
-</style>
-</head>
-<body>'
-echo '<h1>'^$title^'</h1>'
-if(! ~ $PATH_INFO /)
- echo '<a href="../">Parent directory</a>'
-echo '<table>'
-ls -lQ $lso | awk '
-function urlencode(loc){
- # very minimal encoding, just enough for our static-file purposes
- url=loc
- gsub("%", "%25", url) # this one first!
- gsub("\\$", "%24", url)
- gsub("&", "%26", url)
- gsub("\\+", "%2B", url)
- gsub("\\?", "%3F", url)
- gsub(" ", "%20", url)
- gsub("\"", "%22", url)
- gsub("#", "%23", url)
- return url
-}
-function hrsize(size){
- if(size > 1073741824) return sprintf("%.1fGB", size/1073741824)
- if(size > 10485760) return sprintf("%iMB", size/1048576)
- if(size > 1048576) return sprintf("%.1fMB", size/1048576)
- if(size > 10240) return sprintf("%iKB", size/1024)
- if(size > 1024) return sprintf("%.1fKB", size/1024)
- return sprintf("%iB", size)
-}
-/^(-|a)/ {
- print "<tr>"
- print "<td class=\"size\">"hrsize($6)"</td>"
- print "<td class=\"month\">"$7"</td>"
- print "<td class=\"day\">"$8"</td>"
- print "<td class=\"datetime\">"$9"</td>"
- $1="" ; $2="" ; $3="" ; $4="" ; $5="" ; $6="" ; $7="" ; $8="" ; $9=""
- sub("^ *?", "")
- print "<td><a class=\"file name\" href=\""urlencode($0)"\">"$0"</a></td>"
- print "</tr>"
- $0=""
-}
-/^d/ {
- print "<tr>"
- print "<td class=\"size\"> </td>"
- print "<td class=\"month\">"$7"</td>"
- print "<td class=\"day\">"$8"</td>"
- print "<td class=\"datetime\">"$9"</td>"
- $1="" ; $2="" ; $3="" ; $4="" ; $5="" ; $6="" ; $7="" ; $8="" ; $9=""
- sub("^ *?", "")
- print "<td><a class=\"dir name\" href=\""urlencode($0)"/\">"$0"/</a></td>"
- print "</tr>"
-}'
-echo '</table>
-
-</body>
-</html>'
diff --git a/bin/contrib/rc-httpd/handlers/error b/bin/contrib/rc-httpd/handlers/error
deleted file mode 100755
index 282d870..0000000
--- a/bin/contrib/rc-httpd/handlers/error
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/rc
-# DO NOT make this script callable directly from the web!
-fn do_error{
- echo 'HTTP/1.1 '^$1^$cr
- emit_extra_headers
- echo 'Content-type: text/html'^$cr
- echo $cr
- echo '<html>
-<head>
-<title>'^$1^'</title>
-</head>
-<body>
-<h1>'^$1^'</h1>'
- echo $2
- echo '<p><i>rc-httpd at' $SERVER_NAME '</i>'
- echo '
- </body>
- </html>
- '
-}
-
-fn 401{
- do_error '401 Unauthorized' \
- 'The requested path '^$"location^' requires authorization.'
-}
-
-fn 404{
- do_error '404 Not Found' \
- 'The requested path '^$"location^' was not found on this server.'
-}
-
-fn 500{
- do_error '500 Internal Server Error' \
- 'The server has encountered an internal misconfiguration and is unable to satisfy your request.'
-}
-
-fn 503{
- do_error '503 Forbidden' \
- 'You do not have permission to access '^$"location^' on this server.'
-}
-
-do_log $1
-$1
diff --git a/bin/contrib/rc-httpd/handlers/redirect b/bin/contrib/rc-httpd/handlers/redirect
deleted file mode 100755
index e223091..0000000
--- a/bin/contrib/rc-httpd/handlers/redirect
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/rc
-if(~ $#2 0){
- error 500
- exit
-}
-switch($1){
-case perm*
- do_log 301
- echo 'HTTP/1.1 301 Moved Permanently'^$cr
-case temp*
- do_log 302
- echo 'HTTP/1.1 302 Moved Temporarily'^$cr
-case seeother
- do_log 303
- echo 'HTTP/1.1 303 See Other'^$cr
-case *
- error 500
- exit
-}
-echo 'Location: ' ^ $2 ^ $cr
-emit_extra_headers
-echo 'Content-type: text/html'^$cr
-echo $cr
-echo '<html><body>'
-if(~ $#3 0)
- echo 'Browser did not accept redirect.'
-if not
- echo $3
-echo '<a href="'^$"location^'/">Click here</a>'
-echo '</body></html>'
diff --git a/bin/contrib/rc-httpd/handlers/serve-static b/bin/contrib/rc-httpd/handlers/serve-static
deleted file mode 100755
index 00cc70a..0000000
--- a/bin/contrib/rc-httpd/handlers/serve-static
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/rc
-full_path=`{echo $"FS_ROOT^$"PATH_INFO | urldecode.awk}
-full_path=$"full_path
-if(~ $full_path */)
- error 503
-if(test -d $full_path){
- redirect perm $"location^'/' \
- 'URL not quite right, and browser did not accept redirect.'
- exit
-}
-if(! test -e $full_path){
- error 404
- exit
-}
-if(! test -r $full_path){
- error 503
- exit
-}
-do_log 200
-switch($full_path){
-case *.html *.htm
- type=text/html
-case *.css
- type=text/css
-case *.txt
- type='text/plain; charset=utf-8'
-case *.jpg *.jpeg
- type=image/jpeg
-case *.gif
- type=image/gif
-case *.png
- type=image/png
-case *
- type=`{file -m $full_path || file -i $full_path} # GROSS
-}
-max_age=3600 # 1 hour
-echo 'HTTP/1.1 200 OK'^$cr
-emit_extra_headers
-echo 'Content-type: '^$type^'; charset=utf-8'^$cr
-echo 'Content-length: '^`{ls -l $full_path | awk '{print $6}'}
-echo 'Cache-control: max-age='^$max_age^$cr
-echo $cr
-exec cat $full_path
diff --git a/bin/contrib/rc-httpd/handlers/static-or-cgi b/bin/contrib/rc-httpd/handlers/static-or-cgi
deleted file mode 100755
index 4d8a2d4..0000000
--- a/bin/contrib/rc-httpd/handlers/static-or-cgi
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/rc
-cgiargs=$*
-
-fn error{
- if(~ $1 404)
- exec cgi $cgiargs
- if not
- $rc_httpd_dir/handlers/error $1
-}
-
-if(~ $location */)
- exec cgi $cgiargs
-if not
- exec serve-static
diff --git a/bin/contrib/rc-httpd/handlers/static-or-index b/bin/contrib/rc-httpd/handlers/static-or-index
deleted file mode 100755
index f0904f8..0000000
--- a/bin/contrib/rc-httpd/handlers/static-or-index
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/rc
-if(~ $PATH_INFO */)
- exec dir-index $params
-if not
- exec serve-static