|
|
|
@ -2519,22 +2519,34 @@ _startserver() {
|
|
|
|
|
_content_len="$(printf "%s" "$content" | wc -c)"
|
|
|
|
|
_debug _content_len "$_content_len"
|
|
|
|
|
_debug "_NC" "$_NC $SOCAT_OPTIONS"
|
|
|
|
|
export _SOCAT_ERR="$(_mktemp)"
|
|
|
|
|
$_NC $SOCAT_OPTIONS SYSTEM:"sleep 1; \
|
|
|
|
|
echo 'HTTP/1.0 200 OK'; \
|
|
|
|
|
echo 'Content-Length\: $_content_len'; \
|
|
|
|
|
echo ''; \
|
|
|
|
|
printf '%s' '$content';" &
|
|
|
|
|
printf '%s' '$content';" 2>"$_SOCAT_ERR" &
|
|
|
|
|
serverproc="$!"
|
|
|
|
|
if [ -f "$_SOCAT_ERR" ]; then
|
|
|
|
|
if grep "Permission denied" "$_SOCAT_ERR" >/dev/null; then
|
|
|
|
|
_err "socat: $(cat $_SOCAT_ERR)"
|
|
|
|
|
_err "Can not listen for user: $(whoami)"
|
|
|
|
|
_err "Maybe try with root again?"
|
|
|
|
|
rm -f "$_SOCAT_ERR"
|
|
|
|
|
return 1
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_stopserver() {
|
|
|
|
|
pid="$1"
|
|
|
|
|
_debug "pid" "$pid"
|
|
|
|
|
if [ -z "$pid" ]; then
|
|
|
|
|
rm -f "$_SOCAT_ERR"
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
kill $pid
|
|
|
|
|
rm -f "$_SOCAT_ERR"
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|