#/bin/bash
#
# Test multiple listening sockets, each with their own certificate.
#
# This implements T3 in the original test plan.
. common.sh
set +o errexit

PORT2=$(($RANDOM + 1024))

$HITCH $HITCH_ARGS --backend=[hitch-tls.org]:80 \
	"--frontend=[${LISTENADDR}]:$LISTENPORT+certs/site1.example.com" \
	"--frontend=[${LISTENADDR}]:$PORT2+certs/site2.example.com" \
	certs/default.example.com
test "$?" = "0" || die "Hitch did not start."

echo -e "\n" | openssl s_client -prexit -connect $LISTENADDR:$LISTENPORT 2>/dev/null > $DUMPFILE || die "s_client failed"
grep -q -c "subject=/CN=site1.example.com" $DUMPFILE
test "$?" = "0" || die "s_client got wrong certificate on listen port #1"

# Second listen port.
echo -e "\n" | openssl s_client -prexit -connect $LISTENADDR:$PORT2 2>/dev/null > $DUMPFILE || die "s_client failed"
grep -q -c "subject=/CN=site2.example.com" $DUMPFILE
test "$?" = "0" || die "s_client got wrong certificate in listen port #2"

runcurl $LISTENADDR $LISTENPORT
runcurl $LISTENADDR $PORT2
