--- /dev/null
+#!/bin/sh
+
+. ${0%/*}/cgilite/cgilite.sh
+# . ${_EXEC}/cgilite/session.sh
+
+proxydest=''
+checkid(){ { [ $# -gt 0 ] && printf %s "$*" || cat; } | grep -m 1 -xE '[0-9a-zA-Z:=]{16}'; }
+
+for arg in "$@"; do case $arg in
+ http://*/*) proxydest="$arg"
+ ;;
+esac; done
+
+authkey="$(GET akey |checkid)"
+
+if [ "${authkey}" ]; then
+ SET_COOKIE session authkey="$authkey"
+ REDIRECT "$PATH_INFO"
+fi
+
+authkey="$(COOKIE authkey |checkid)"
+
+if ! grep -qxF "$authkey" "$_DATA/authkeys"; then
+ debug 404
+ cat <<-404page
+ Status: 404 Forbidden$CR
+ Content-Type: text/plain$CR
+ $CR
+ No authkey provided$CR
+ 404page
+ exit 0
+fi
+
+proxy_location='' proxy_port='' proxy_domain=''
+
+proxy_location="${proxydest#*://}" proxy_location="/${proxy_location#*/}"
+proxy_port="${proxydest#*://}" proxy_port="${proxy_port%%/*}" proxy_port="${proxy_port##*:}"
+[ "${proxy_port}" -gt 0 -a "${proxy_port}" -lt 65536 ] 2>/dev/null || proxy_port=80
+proxy_domain="${proxydest#*://}" proxy_domain="${proxy_domain%%/*}" proxy_domain="${proxy_domain%:*}"
+
+proxy_headers=$(printf '%s\n' "$cgilite_headers" |sed '/^Host:/d; s;^Connection: keep-alive;Connection: close;; s;$;\r;')
+
+{ head -c -1 | nc "${proxy_domain}" "${proxy_port}" | sed '1s;^HTTP/1.1 ;Status: ;'; }<<-endnc
+ ${REQUEST_METHOD} ${proxy_location%/}/${PATH_INFO#/} ${SERVER_PROTOCOL}$CR
+ Host: ${proxy_domain}:${proxy_port}$CR
+ ${proxy_headers}
+ $(if [ $REQUEST_METHOD = POST -a ${CONTENT_LENGTH:-0} -gt 0 -a "${CONTENT_TYPE}" = "application/x-www-form-urlencoded" ]; then
+ printf %s "${cgilite_post}"
+ elif [ ${CONTENT_LENGTH:-0} -gt 0 ]; then
+ debug Content-Non-POST
+ cat
+ fi)
+ endnc