#! /usr/bin/env bash
# source: proxyecho.sh
# Copyright Gerhard Rieger and contributors (see file CHANGES)
# Published under the GNU General Public License V.2, see file COPYING

# perform primitive simulation of a proxy server with echo function via stdio.
# accepts and answers correct HTTP CONNECT requests, but then just echoes data.
# it is required for test.sh
# for TCP, use this script as:
# socat TCP-L:8080,reuseaddr,crlf SYSTEM:"proxyecho.sh"

# 20230423  GR Added option -V to require particular HTTP version

if type socat >/dev/null 2>&1; then
    SOCAT=socat
else
    SOCAT=./socat
fi

case `uname` in
HP-UX|OSF1)
    CAT="$SOCAT -u stdin stdout"
    ;;
*)
    CAT=cat
    ;;
esac

SPACES=" " REQVER=1.0
while [ -n "$1" ]; do
    case "$1" in
    -w) n="$2"; while [ "$n" -gt 0 ]; do SPACES="$SPACES "; n=$((n-1)); done
	shift ;;
    -V) shift; REQVER="$1" ;;
    #-s) STAT="$2"; shift ;;
    esac
    shift
done

# read and parse HTTP request
read l
if ! echo "$l" |egrep '^CONNECT +[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+ +HTTP/[1-3].[0-9]$' >/dev/null
then
    echo "HTTP/1.0${SPACES}500 Bad Request"
    echo
    exit
fi
if ! echo "$l" |egrep '^CONNECT +[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+ +HTTP/'"$REQVER"'$' >/dev/null
then
    echo "HTTP/1.0${SPACES}426 Upgrade Required"
    echo
    exit
fi

# read more headers until empty line
while [ -n "$l" ]; do
    read l
done

# send status
echo "HTTP/$REQVER${SPACES}200 OK"
# send empty line
echo

# perform echo function
exec $CAT
