diff options
author | KatolaZ <katolaz@freaknet.org> | 2018-07-23 12:19:34 +0100 |
---|---|---|
committer | KatolaZ <katolaz@freaknet.org> | 2018-07-23 12:19:34 +0100 |
commit | 1df435313418065be6eb6ab2f7aaf47b9a3876e6 (patch) | |
tree | 5aff5356ae8039dbea9607832c3be347bdbde083 | |
parent | fe87591ab64d343b6634a8aaae397ec1acb4d88c (diff) |
added further checks0.2
-rw-r--r-- | TODO | 2 | ||||
-rwxr-xr-x | gosher | 52 |
2 files changed, 33 insertions, 21 deletions
@@ -1,5 +1,5 @@ +- use getopt - add chroot and privilege drop - allow on-the-fly creation of gopherfle from a folder (set it active through an option) - @@ -43,7 +43,7 @@ NETCAT="nc.openbsd" ### use named pipes (Does *not* work with original netcat!!!!!) STYLE='pipe' -OPREFIX=/tmp/outf_ +### prefix of the input FIFO IPREFIX=/tmp/inf_ DEBUG= @@ -63,6 +63,8 @@ cleanup(){ } MYNAME=$(basename $0) +MYDIR=$(dirname $(realpath $0)) +NETCAT=$(which $NETCAT) if [ -z "${MYNAME#gosher}" ]; then ## we are called as gosher -- launch the server @@ -70,28 +72,38 @@ if [ -z "${MYNAME#gosher}" ]; then PORT=${1:-70} GOPHERDIR=${2:-"./"} - trap cleanup 0 HUP INT TRAP TERM QUIT - - INF=${IPREFIX}$$ - [ "$STYLE" = "pipe" ] && { - mkfifo -m 600 $INF - while [ 1 -eq 1 ]; do - ./gosher_serve ${GOPHERDIR} <$INF | ${NETCAT} -vvvvv -l -p ${PORT} >$INF - done - rm -f $INF - exit 0 - } - [ "$STYLE" = 'fork' ] && { - while [ 1 -eq 1 ]; do - ${NETCAT} -vv -l -p $PORT -c "~/gosher_serve ${GOPHERDIR}" - done - exit 0 + [ ! -f "${NETCAT}" -o ! -x "${NETCAT}" ] && { + echo "Wrong NETCAT -- Exiting" >&2 + exit 2 } - echo "Error!!! wrong STYLE specified!!!" >&2 - exit 1 + + if [ -f "${MYDIR}/gosher_serve" -o -h "${MYDIR}/gosher_serve" ]; then + GOSHER_SERVE="${MYDIR}/gosher_serve" + trap cleanup 0 HUP INT TRAP TERM QUIT + + INF=${IPREFIX}$$ + [ "$STYLE" = "pipe" ] && { + mkfifo -m 600 $INF + while [ 1 -eq 1 ]; do + ${GOSHER_SERVE} ${GOPHERDIR} <$INF | ${NETCAT} -vvvvv -l -p ${PORT} >$INF + done + rm -f $INF + exit 0 + } + [ "$STYLE" = 'fork' ] && { + while [ 1 -eq 1 ]; do + ${NETCAT} -vv -l -p $PORT -c "${GOSHERSERVE} ${GOPHERDIR}" + done + exit 0 + } + echo "Wrong STYLE specified -- Exiting" >&2 + exit 2 + else + echo "Cannot find gosher_serve -- Exiting">&2 + exit 3 + fi fi - ###################### ## |