#!/bin/sh
# nc - skrypt emulujcy zachowanie programu "netcat"
# (c) Sebastian Zagrodzki <s.zagrodzki@sokrates.mimuw.edu.pl>
# Strona domowa: http://sokrates.mimuw.edu.pl/~zagrodzki
#
# Ten program moe by wykorzystywany jedynie do celw niekomercyjnych.
# Uywanie go bez wiedzy i zgody autora w celach zarobkowych jest
# niedozwolone.
# Autor nie ponosi odpowiedzialnoci za adne skutki wynike z dziaania
# programu, nie gwarantuje te poprawnoci jego dziaania.

TIMEOUT=20

LOCK="`mktemp /tmp/sleep.XXXXXX || ( umask 077 ; touch /tmp/sleep.$$$$; echo /tmp/sleep.$$$$ ) `"
# jeli w naszym systemie nie ma polecenia mktemp, to wystarczy
# zakomentowa linijk wyej, a odkomentowa t poniej:
# LOCK="/tmp/sleep.$RANDOM.$PPID"

export LOCK

if [ "$1" = "-w" ]; then
	shift
	TIMEOUT="$1"
	shift
fi

HOST="$1"

[ -n "$2" ] && PORT="$2" || PORT="80"

{ cat | tr -d '\r' ; sleep "$TIMEOUT" & echo "$!" > "$LOCK" ;} |\
	telnet "$HOST" "$PORT" 2>/dev/null
	
kill -KILL "`cat \"$LOCK\"`"
rm -f "$LOCK"
