From 0b998699aaf1bd86229c1dcff7358cc59f1ed0f7 Mon Sep 17 00:00:00 2001 From: mivirl <> Date: Thu, 21 Sep 2023 13:13:19 -0500 Subject: [PATCH] cleanup --- src/server.sh | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/server.sh b/src/server.sh index d1292d8..c34b451 100644 --- a/src/server.sh +++ b/src/server.sh @@ -14,8 +14,9 @@ verify_input() { } write_to_file() { - if [ ! -z "$1" ]; then - while IFS= read INPUT; do + if [ -n "$1" ]; then + touch "$1" + while IFS= read -r INPUT; do if [ "$INPUT" != "⟃---EOF---⟄" ]; then echo "$INPUT" >> "$1" else @@ -35,18 +36,18 @@ print_status() { # ----------------------------------------------------------------------------- # Identify/authenticate client -read COMMAND +read -r COMMAND if [ "$COMMAND" = "login" ]; then echo -n "Client name: " - read TMPNAME + read -r TMPNAME echo -n "Client key: " - read TMPKEY + read -r TMPKEY verify_input "$TMPNAME" if [ -e "$SRVDIR/clients/$TMPNAME" ]; then KEY=$(cat "$SRVDIR/clients/$TMPNAME/auth-key") - if [ "$TMPKEY" = "$TMPKEY" ]; then + if [ "$TMPKEY" = "$KEY" ]; then CLIENTNAME="$TMPNAME" CLIENTDIR="$SRVDIR/clients/$TMPNAME" echo "Auth success" @@ -59,13 +60,13 @@ if [ "$COMMAND" = "login" ]; then unset TMPNAME unset TMPKEY elif [ "$COMMAND" = "register" ]; then - CLIENTNAME="client_$(( $RANDOM * 2**30 + $RANDOM * 2**15 + $RANDOM ))" + CLIENTNAME="client_$(( RANDOM * 2**30 + RANDOM * 2**15 + RANDOM ))" CLIENTDIR="$SRVDIR/clients/$CLIENTNAME" - CLIENTKEY=$(( $RANDOM * 2**30 + $RANDOM * 2**15 + $RANDOM )) + CLIENTKEY=$(( RANDOM * 2**30 + RANDOM * 2**15 + RANDOM )) mkdir -p "$CLIENTDIR" echo "$CLIENTKEY" > "$CLIENTDIR/auth-key" - echo "You are $CLIENTNAME" - echo "Your key is $CLIENTKEY" + echo "Name: $CLIENTNAME" + echo "Key: $CLIENTKEY" unset CLIENTKEY else echo "Command not found." @@ -78,17 +79,17 @@ cd "$CLIENTDIR" # ----------------------------------------------------------------------------- # Client communication -while read COMMAND; do +while read -r COMMAND; do if [ "$COMMAND" = "info" ]; then print_status write_to_file info.txt elif [ "$COMMAND" = "processes" ]; then print_status write_to_file processes.log elif [ "$COMMAND" = "file" ]; then echo -n "Filename: " - read TMPFILENAME + read -r TMPFILENAME verify_input "F__${TMPFILENAME}" echo -n "Hash: " - read TMPHASH + read -r TMPHASH # Client should send with `cat file | nc ip port` PORT=$(( ($RANDOM*2 + $RANDOM%2) % 64511 + 1024 )) @@ -104,7 +105,7 @@ while read COMMAND; do unset TMPFILENAME elif [ "$COMMAND" = "log" ]; then echo -n "Filename: " - read TMPFILENAME + read -r TMPFILENAME verify_input "L__${TMPFILENAME}.log" print_status write_to_file "L__${TMPFILENAME}.log" unset TMPFILENAME -- 2.39.5