diff options
Diffstat (limited to 'examples/file-server')
-rwxr-xr-x | examples/file-server/accept-files.sh | 12 | ||||
-rwxr-xr-x | examples/file-server/browse-files.sh | 16 | ||||
-rwxr-xr-x | examples/file-server/serve-files.sh | 13 |
3 files changed, 41 insertions, 0 deletions
diff --git a/examples/file-server/accept-files.sh b/examples/file-server/accept-files.sh new file mode 100755 index 0000000..c3f472e --- /dev/null +++ b/examples/file-server/accept-files.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Accept files from remote users. + +ROOT="/srv/tlsd/files" +USERDIR="${ROOT}/${ALIAS}" + +if read -r LINE +then if [ -d "${USERDIR}" ] + then cat > "${USERDIR}/$(echo "${LINE}" | sed -e 's/\.\.//g')" + else echo "No directory for you!" + fi +fi diff --git a/examples/file-server/browse-files.sh b/examples/file-server/browse-files.sh new file mode 100755 index 0000000..c93716d --- /dev/null +++ b/examples/file-server/browse-files.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Serves files and directory listings. + +ROOT="/srv/tlsd/files" + +while read -r LINE +do + echo "${SHA256}: ${LINE}" 1>&2 + FILEPATH="${ROOT}/$(echo "${LINE}" | sed -e 's/\.\.//g')" + if [ -d "${FILEPATH}" ] + then ls -l "${FILEPATH}" + elif [ -f "${FILEPATH}" ] + then cat "${FILEPATH}" + else echo "${FILEPATH} is neither a file nor a directory"; + fi +done diff --git a/examples/file-server/serve-files.sh b/examples/file-server/serve-files.sh new file mode 100755 index 0000000..5728c10 --- /dev/null +++ b/examples/file-server/serve-files.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# Serve a single file and exits. + +ROOT="/srv/tlsd/files" + +if read -r LINE +then echo "${SHA256}: ${LINE}" 1>&2 + FILEPATH="${ROOT}/$(echo "${LINE}" | sed -e 's/\.\.//g')" + if [ -f "${FILEPATH}" ] + then cat "${FILEPATH}" + else echo "${FILEPATH} is not a file" + fi +fi |