diff options
| -rwxr-xr-x | gosher | 22 | 
1 files changed, 21 insertions, 1 deletions
| @@ -22,6 +22,19 @@  ## server...  ## +NETCAT=netcat +OPREFIX=/tmp/outf_ +IPREFIX=/tmp/inf_ + + +## function +cleanup(){ +	[ -p "${OPREFIX}$$" ] && rm -f ${OPREFIX}$$ +	[ -p "${IPREFIX}$$" ] && rm -f ${IPREFIX}$$ +	exit 1 + +} +  MYNAME=$(basename $0)  if [ -z "${MYNAME#gosher}" ]; then  @@ -30,8 +43,15 @@ if [ -z "${MYNAME#gosher}" ]; then  	PORT=${1:-70}  	GOPHERDIR=${2:-"./"} +	trap cleanup 0 HUP INT TRAP TERM QUIT	 +	  	while [ 1 -eq 1 ]; do  -        	netcat -vv -k -l -p ${PORT} -c "./gosher_serve ${GOPHERDIR}" +        	OUTF=${OPREFIX}$$ +		INF=${IPREFIX}$$ +		mkfifo -m 600 $OUTF $INF +		./gosher_serve ${GOPHERDIR} <$INF >$OUTF &  +		${NETCAT} -vv -l -p ${PORT} >$INF <$OUTF +		rm $OUTF $INF  		ret=$?  	done  	exit 0  | 
