export _DATA="$(dirname "$call")" #storage directory
export _EXEC="${real%/shcgi/index.cgi}" #execution directory
+. "$_EXEC/shcgi/misc.sh"
+
if [ "$1" = '--server' -o "$1" = '--inetd' -o "$1" = '--ncat' ]; then
. "$_EXEC/shcgi/server.sh" $@
else
HTTP_format(){ cat }
fi
-
-. "$_EXEC/shcgi/misc.sh"
# put debug options in the local.opts file
. "$_EXEC/shcgi/debug.sh"
STATIC=$(invalidate "${STATIC:-${_GET[static]}}" '(^|.*/)\.\./.*' '')
if [ -n "$STATIC" -a -e "${_EXEC}/static/${STATIC}" ]; then
- . "$_EXEC/shcgi/static.sh"
+ . "$_EXEC/shcgi/static.sh" "$_EXEC/static/$STATIC"
elif [ -n "$ACTION" -a -x "${_EXEC}/actions/${ACTION}.sh" ]; then
. "${_EXEC}/actions/${ACTION}.sh"
elif [ -n "$PAGE" -a -x "${_EXEC}/pages/${PAGE}.sh" ]; then
bX
'
}
+
+PATH_INFO="$(invalidate "${PATH_INFO}" '(^|.*/)\.\./.*' '')"
+
+if [ -z "$QUERY_STRING" -a -f "$_DATA/$PATH_INFO" ]; then
+ . "$_EXEC/shcgi/static.sh" "$_DATA/$PATH_INFO"
+ exit 0
+fi |HTTP_format
unset length date file suffix
-file="$_EXEC/static/$STATIC"
+file="$1"
date="$(stat -c %Y "$file")"
# allow overriding magic file recognition