]> git.plutz.net Git - cgilite/blobdiff - file.sh
bugfix: allow positive return of LOCK()
[cgilite] / file.sh
diff --git a/file.sh b/file.sh
index aaa3723d29cc8c5ea1b6d8ffa732aad5b4566fa1..06f28d02f5640abfbfd560641348e8c8e8cd6e22 100755 (executable)
--- a/file.sh
+++ b/file.sh
@@ -17,6 +17,9 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with cgilite.  If not, see <http://www.gnu.org/licenses/>. 
 
+[ -n "$include_fileserve" ] && return 0
+include_fileserve="$0"
+
 file_type(){
   case ${1##*.} in
     html|html) printf 'text/html';;
@@ -41,10 +44,10 @@ FILE(){
   file="$1"
 
   if ! [ -f "$file" ]; then
-    printf 'Status: 404 Not Found\r\n\r\n'
+    printf 'Content-Length: 0\r\nStatus: 404 Not Found\r\n\r\n'
     exit 0
   elif ! [ -r "$file" ]; then
-    printf 'Status: 403 Forbidden\r\n\r\n'
+    printf 'Content-Length: 0\r\nStatus: 403 Forbidden\r\n\r\n'
     exit 0
   fi
 
@@ -70,7 +73,7 @@ FILE(){
   case "$range" in
     *-) range="${range}$((file_size - 1))";;
     -*) [ ${range#-} -le $file_size ] \
-        && range="$((file-size - ${rang#-}))-$((file_size - 1))" \
+        && range="$((file_size - ${range#-}))-$((file_size - 1))" \
         || range="0-$((file_size - 1))";;
     *-*) [ ${range#*-} -ge $file_size ] \
          && range="${range%-*}-$((file_size - 1))";;
@@ -79,6 +82,7 @@ FILE(){
   if [ "$file_date" -lt "$cachedate" ] 2>&-; then
     printf '%s: %s\r\n' \
       Status '304 Not Modified' \
+      Content-Length 0 \
       Last-Modified "$http_date"
     printf '\r\n'
   
@@ -110,6 +114,7 @@ FILE(){
   elif [ "${range%-*}" -gt "${range#*-}" ]; then
     printf '%s: %s\r\n' \
       Status "216 Range Not Satisfiable" \
+      Content-Length 0 \
       Content-Range \*/${file_size}
     printf '\r\n'
   fi