|
|
|
@ -134,9 +134,9 @@ fi
|
|
|
|
|
## function
|
|
|
|
|
invalid_selector(){
|
|
|
|
|
sel="$1"
|
|
|
|
|
echo "3Error: Invalid selector: \"$sel\""
|
|
|
|
|
echo "[$(date +%Y-%m-%d\ %H:%M:%S)|ERROR|${sel}|\"\"]" >&2
|
|
|
|
|
printf "3Error: Invalid selector\tErr\t\t\r\n.\r\n"
|
|
|
|
|
# shellcheck disable=SC1117
|
|
|
|
|
printf ".\r\n"
|
|
|
|
|
exec 1>&-
|
|
|
|
|
exec 2>&-
|
|
|
|
|
exit 1
|
|
|
|
@ -147,7 +147,7 @@ serve_selector(){
|
|
|
|
|
sel="$1"
|
|
|
|
|
|
|
|
|
|
cat "${sel}"
|
|
|
|
|
echo "$0: selector $sel served -- exiting " >&2
|
|
|
|
|
echo "[$(date +%Y-%m-%d\ %H:%M:%S)|SELECTOR|${sel}|\"\"]" >&2
|
|
|
|
|
exec 1>&-
|
|
|
|
|
exec 2>&-
|
|
|
|
|
exit 0
|
|
|
|
@ -160,6 +160,8 @@ serve_index(){
|
|
|
|
|
IDX=$1
|
|
|
|
|
IFS='
|
|
|
|
|
'
|
|
|
|
|
|
|
|
|
|
echo "[$(date +%Y-%m-%d\ %H:%M:%S)|GPH|${IDX}|\"\"]" >&2
|
|
|
|
|
while read -r line; do
|
|
|
|
|
rline=$(echo "$line" | sed -r -e 's/\r//g')
|
|
|
|
|
case "$rline" in
|
|
|
|
@ -184,6 +186,8 @@ serve_index(){
|
|
|
|
|
## function
|
|
|
|
|
serve_redirect(){
|
|
|
|
|
url=$1
|
|
|
|
|
|
|
|
|
|
echo "[$(date +%Y-%m-%d\ %H:%M:%S)|REDIRECT|${url}|\"\"]" >&2
|
|
|
|
|
cat<< EOF
|
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
|
<html>
|
|
|
|
@ -205,7 +209,7 @@ EOF
|
|
|
|
|
serve_cgi(){
|
|
|
|
|
script_name=$( echo "$1" | sed -r 's:^/+::')
|
|
|
|
|
query_string="$2"
|
|
|
|
|
echo "serving script_name: ${script_name} with query_string: ${query_string}" >&2
|
|
|
|
|
echo "[$(date +%Y-%m-%d\ %H:%M:%S)|CGI|${script_name}|\"${query_string}\"]" >&2
|
|
|
|
|
GATEWAY_INTERFACE="CGI/1.1"
|
|
|
|
|
PATH_INFO="${script_name}"
|
|
|
|
|
PATH_TRANSLATED="${script_name}"
|
|
|
|
@ -223,6 +227,8 @@ serve_cgi(){
|
|
|
|
|
export REMOTE_ADDR REMOTE_HOST REQUEST_METHOD SCRIPT_NAME
|
|
|
|
|
export SERVER_NAME SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE
|
|
|
|
|
${GOPHERDIR}${script_name} "" "${query_string}" "${HOSTNAME}" "${PORT}" 2>&1
|
|
|
|
|
exec 1>&-
|
|
|
|
|
exec 2>&-
|
|
|
|
|
exit $?
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -243,7 +249,7 @@ selector=$(echo "$selector" | sed -r 's:\$.*::g;s:\r::g' )
|
|
|
|
|
case $selector in
|
|
|
|
|
URL:*)
|
|
|
|
|
## it's a special URL selector
|
|
|
|
|
url=$(echo "$selector" | cut -d ":" -f 2-)
|
|
|
|
|
url=$(echo "$selector" | cut -d ":" -f 2- | sed 's:^//::g')
|
|
|
|
|
serve_redirect "$url"
|
|
|
|
|
;;
|
|
|
|
|
/?*.cgi*)
|
|
|
|
|