From b1710af38b3615c7cc1650172c7cec6a23fe22e0 Mon Sep 17 00:00:00 2001 From: Dominika Liberda Date: Sun, 2 May 2021 23:05:31 +0000 Subject: [PATCH] + unbuffered responses and r[range] --- src/response/200.sh | 15 ++++++++++----- src/server.sh | 7 +++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/response/200.sh b/src/response/200.sh index 06beddd..5ffd350 100755 --- a/src/response/200.sh +++ b/src/response/200.sh @@ -7,11 +7,16 @@ if [[ ${r[status]} == 200 ]]; then fi if [[ ${r[status]} == 212 ]]; then - temp=$(mktemp) - source "${r[view]}" > $temp - [[ "${r[headers]}" != '' ]] && printf "${r[headers]}\r\n\r\n" || printf "\r\n" - cat $temp - rm $temp + if [[ "${cfg[unbuffered]}" == true ]]; then + printf "\r\n" + source "${r[view]}" + else + temp=$(mktemp) + source "${r[view]}" > $temp + [[ "${r[headers]}" != '' ]] && printf "${r[headers]}\r\n\r\n" || printf "\r\n" + cat $temp + rm $temp + fi elif [[ "${cfg[php_enabled]}" == true && "${r[uri]}" =~ ".php" ]]; then temp=$(mktemp) diff --git a/src/server.sh b/src/server.sh index f37699c..bc2d6b3 100755 --- a/src/server.sh +++ b/src/server.sh @@ -71,10 +71,13 @@ while read -r param; do value="$(sed "s/$name=//;s/^ //;s/ $//" <<< $i)" cookies[$name]="$(echo -e $value)" done + + elif [[ "$param_l" == *"range: bytes="* ]]; then + r[range]="$(sed 's/Range: bytes=//;s/\r//' <<< "$param")" elif [[ "$param" == *"GET "* ]]; then r[url]="$(echo -ne "$(url_decode "$(sed -E 's/GET //;s/HTTP\/[0-9]+\.[0-9]+//;s/ //g;s/\/*\r//g;s/\/\/*/\//g' <<< "$param")")")" - data="$(echo ${r[url]} | sed -E 's/^(.*)\?//;s/\&/ /g')" + data="$(sed -E 's/\?/��MaE_iS_CuTe�/;s/^(.*)��MaE_iS_CuTe�//;s/\&/ /g' <<< "${r[url]}")" if [[ "$data" != "${r[url]}" ]]; then data="$(echo ${r[url]} | sed -E 's/^(.*)\?//')" IFS='&' @@ -89,7 +92,7 @@ while read -r param; do r[url]="$(echo -ne "$(url_decode "$(sed -E 's/POST //;s/HTTP\/[0-9]+\.[0-9]+//;s/ //g;s/\/*\r//g;s/\/\/*/\//g' <<< "$param")")")" r[post]=true # below shamelessly copied from GET, should be moved to a function - data="$(sed -E 's/^(.*)\?//;s/\&/ /g' <<< "${r[url]}")" + data="$(sed -E 's/\?/��MaE_iS_CuTe�/;s/^(.*)��MaE_iS_CuTe�//;s/\&/ /g' <<< "${r[url]}")" if [[ "$data" != "${r[url]}" ]]; then data="$(sed -E 's/^(.*)\?//' <<< "${r[url]}")" IFS='&'