#!/usr/bin/env bash
source ../multi-host.conf
mkdir -p logs
workdir=$(pwd)

clean_up() {
    r=$(killall nc 2>&1)
    r=$(ssh $CTRL_B "sudo killall nfd" 2>&1)
}

# start NFD on B
ssh $CTRL_B "sudo nfd > $workdir/logs/nfd.log 2>&1 &\
    sleep 2"

# start netcat on A
nc -vul 6363 > $workdir/logs/netcat.log 2>&1 &
sleep 1

# add nexthop of ndn:/ and ndn:/localhost/test-out to hostA
if ! status=$(ssh $CTRL_B "source $workdir/out-B.sh udp4://$IP4_A1" 2>&1)
then
    echo "Error message from host B:"
    echo "$status"
    clean_up
    exit 4
fi

# On B, use ndnpeek to request names that starts with ndn:/localhost
r=$(ssh $CTRL_B "ndnpeek -p ndn:/localhost/test-out/B/c39b6fed4ce4464ea136062f80002c7c;\
                 ndnpeek -p ndn:/localhost/C/c39b6fed4ce4464ea136062f80002c7c;\
                 ndnpeek -p ndn:/ref-out/D/3b5fe3f184ff48adb3523180dee50555")
sleep 2

# stop netcat and examine netcat.log
ssh $CTRL_B "sudo killall nfd"
output=$(killall nc)
sleep 1
output=$(grep "c39b6fed4ce4464ea136062f80002c7c" $workdir/logs/netcat.log)
if [[ -n $output ]]
then
    echo "FAIL: /localhost Interest reaches remote host."
    clean_up
    exit 7
fi
output=$(grep "3b5fe3f184ff48adb3523180dee50555" $workdir/logs/netcat.log)
if [[ -z $output ]]
then
    echo "FAIL: non-/localhost Interest does not reach remote host."
    clean_up
    exit 9
fi

# clean up
clean_up
echo "localhost outgoing test PASSED"
