summaryrefslogtreecommitdiff
path: root/examples/file-server
diff options
context:
space:
mode:
Diffstat (limited to 'examples/file-server')
-rwxr-xr-xexamples/file-server/accept-files.sh12
-rwxr-xr-xexamples/file-server/browse-files.sh16
-rwxr-xr-xexamples/file-server/serve-files.sh13
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