diff options
Diffstat (limited to 'rc/bin/rc-httpd/handlers')
-rwxr-xr-x | rc/bin/rc-httpd/handlers/authorize | 6 | ||||
-rwxr-xr-x | rc/bin/rc-httpd/handlers/cgi | 2 | ||||
-rwxr-xr-x | rc/bin/rc-httpd/handlers/error | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/rc/bin/rc-httpd/handlers/authorize b/rc/bin/rc-httpd/handlers/authorize new file mode 100755 index 000000000..ea4db3ef7 --- /dev/null +++ b/rc/bin/rc-httpd/handlers/authorize @@ -0,0 +1,6 @@ +#!/bin/rc +if(~ $REMOTE_USER ''){ + extra_headers=($extra_headers 'WWW-Authenticate: Basic realm="'$"SERVER_NAME'"') + error 401 + exit +} diff --git a/rc/bin/rc-httpd/handlers/cgi b/rc/bin/rc-httpd/handlers/cgi index 96707630c..574cd13c3 100755 --- a/rc/bin/rc-httpd/handlers/cgi +++ b/rc/bin/rc-httpd/handlers/cgi @@ -4,7 +4,7 @@ fn filter_headers{ lines='' done=false while(~ $done false){ - line=`{read} + line=`{getline} head=`{echo $line | awk '{print tolower($1)}'} if(~ $head status:*){ tmp=`{echo $line | awk '{$1="" ; print}'} diff --git a/rc/bin/rc-httpd/handlers/error b/rc/bin/rc-httpd/handlers/error index e38d41f01..282d8706c 100755 --- a/rc/bin/rc-httpd/handlers/error +++ b/rc/bin/rc-httpd/handlers/error @@ -19,6 +19,11 @@ fn do_error{ ' } +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.' |