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

clean_up() {
    r=$(rm $HOME/.ndn/client.conf 2>&1)
    r=$(killall socat 2>&1)
    r=$(ssh $CTRL_B "killall ndn-traffic-server;\
        sudo killall nfd" 2>&1)
}

# start nfd and ndn-traffic-server on hostB
ssh $CTRL_B "mkdir -p $workdir/logs;\
    sudo nfd &> $workdir/logs/nfd.log &\
    sleep 2;\
    nrd &> $workdir/logs/nrd.log &\
    sleep 2;\
    ndn-traffic-server $workdir/NDNTrafficServer.conf &> $workdir/logs/server.log &"
sleep 2

# set up socat on A
socat -v UNIX-LISTEN:/tmp/localhost-test-B.sock,fork TCP:$IP4_B1:6363 &> logs/socat.log &
echo "unix_socket=/tmp/localhost-test-B.sock" > $HOME/.ndn/client.conf
sleep 1

# send interest
response=$(ndn-tlv-peek -p ndn:/localhost/test-in/A 2>&1)
if [[ ! -z $response ]]
then
    echo "FAIL: Expected no data come back for ndn:/localhost/test-in/A, Actual: '$response'"
    clean_up
    exit 2
fi

# copy back the server log
ssh $CTRL_B "killall ndn-traffic-server"
scp $CTRL_B:$workdir/logs/server.log $workdir/logs/

# analyze server log
output=$(grep "Total Interests Received" $workdir/logs/server.log | head -1 | cut -d= -f2 | cut -d' ' -f2)
if [[ $output != '0' ]]
then
    echo "Expected no Interests received on host B. Actual: $output"
    echo "For more information, please examine the log at \"$(pwd)/logs\""
    clean_up
    exit 3
fi

clean_up

echo "localhost incoming test PASSED"
