From 764299819016e5fb400be2fccf12d8de248e4cef Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Wed, 22 Aug 2007 10:38:44 +0000 Subject: httpd: replace shell-based dir indexer cgi example with C-based one. --- networking/httpd_index_cgi_example | 50 -------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 networking/httpd_index_cgi_example (limited to 'networking/httpd_index_cgi_example') diff --git a/networking/httpd_index_cgi_example b/networking/httpd_index_cgi_example deleted file mode 100644 index 9c8e022a6..000000000 --- a/networking/httpd_index_cgi_example +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# This CGI creates directory index. -# Put it into cgi-bin/index.cgi and chmod 0755. -# -# Problems: -# * Unsafe wrt weird filenames with <>"'& etc... -# * Not efficient: calls stat (program, not syscall) for each file -# * Probably requires bash -# -# If you want speed and safety, you need to code it in C - -# Must start with '/' -test "${QUERY_STRING:0:1}" = "/" || exit 1 -# /../ is not allowed -test "${QUERY_STRING%/../*}" = "$QUERY_STRING" || exit 1 -test "${QUERY_STRING%/..}" = "$QUERY_STRING" || exit 1 - -# Outta cgi-bin... -cd .. 2>/dev/null || exit 1 -# Strip leading '/', go to target dir -cd "${QUERY_STRING:1}" 2>/dev/null || exit 1 - -f=`dirname "$QUERY_STRING"` -test "$f" = "/" && f="" - -printf "%s" \ -$'HTTP/1.0 200 OK\r\n'\ -$'Content-type: text/html\r\n\r\n'\ -"Index of $QUERY_STRING"$'\r\n'\ -"

Index of $QUERY_STRING

"$'\r\n'\
-$'\r\n'\
-$'\r\n'\
-$'
NameLast modifiedSize\r\n'\ -\ -"
.."$'\r\n' - -IFS='#' -for f in *; do - # Guard against empty dirs... - test -e "$f" && \ - stat -c "%F#%s#%z" "$f" | { - read type size cdt junk - dir='' - test "$type" = "directory" && dir='/' - cdt="${cdt//.*}" # no fractional seconds - cdt="${cdt// / }" # prevent wrapping around space - printf "%s" "
$f$cdt$size"$'\r\n' - } -done -printf "

"$'\r\n' -- cgit v1.2.3