diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2024-04-07 13:25:49 +0200 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2024-04-07 13:25:49 +0200 |
commit | 9cb56dabb676391a9382731347e8d2b07b9437a5 (patch) | |
tree | 95302f041497679202722d9896ec1386bed2d86c /bin/contrib/rc-httpd/handlers | |
parent | 0a37a1cc5909e11098963267edc9654b85e7ce16 (diff) |
big cleanup
Diffstat (limited to 'bin/contrib/rc-httpd/handlers')
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/authorize | 6 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/cgi | 46 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/dir-index | 111 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/error | 43 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/redirect | 30 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/serve-static | 43 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/static-or-cgi | 14 | ||||
-rwxr-xr-x | bin/contrib/rc-httpd/handlers/static-or-index | 5 |
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 |