From 41e4cebf5eb64e5c42c226bc729f3cdd0f8eac2b Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:06:44 +0200 Subject: [PATCH 01/16] Server --- run/server.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index e65758d..1774a3f 100644 --- a/run/server.sh +++ b/run/server.sh @@ -1,10 +1,22 @@ #!/usr/bin/env bash set -eu -HTML="

Please wait while Virtual DSM is installing...

" +# Close any previous instances +script_name=${BASH_SOURCE[0]} + +for pid in $(pidof -x $script_name); do + if [ $pid != $$ ]; then + kill -9 $pid 2> /dev/null + wait $pid 2> /dev/null + fi +done + +# Serve the page +HTML="

$2

" RESPONSE="HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n$HTML\r\n" while { echo -en "$RESPONSE"; } | nc -lN "${1:-8080}"; do echo "================================================" done + From c989a74b6f471a820f89d4bc16b96c227f814d96 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:09:12 +0200 Subject: [PATCH 02/16] Spawn server --- run/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/install.sh b/run/install.sh index 5a05ffd..4ef735b 100644 --- a/run/install.sh +++ b/run/install.sh @@ -2,7 +2,7 @@ set -eu # Display wait message on port 5000 -/run/server.sh 5000 > /dev/null & +/run/server.sh 5000 "Please wait while Virtual DSM is installing..." > /dev/null & DL="https://global.synologydownload.com/download/DSM" From da18ac8991079875f14af43f25879c2ae2e9c569 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:12:48 +0200 Subject: [PATCH 03/16] Display IP --- run/network.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/run/network.sh b/run/network.sh index b4a6301..e0e17e3 100644 --- a/run/network.sh +++ b/run/network.sh @@ -179,6 +179,9 @@ else # Configuration for DHCP IP configureDHCP + # Display the received IP on port 5000 + /run/server.sh 5000 "The location of DSM is http://{$DHCP_IP}:5000" > /dev/null & + fi NET_OPTS="${NET_OPTS} -device virtio-net-pci,romfile=,netdev=hostnet0,mac=${VM_NET_MAC},id=net0" From 19eb5e89275799cf0f4691a462605910809b04e2 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:22:17 +0200 Subject: [PATCH 04/16] Display info --- run/network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/network.sh b/run/network.sh index e0e17e3..0e8425f 100644 --- a/run/network.sh +++ b/run/network.sh @@ -180,7 +180,7 @@ else configureDHCP # Display the received IP on port 5000 - /run/server.sh 5000 "The location of DSM is http://{$DHCP_IP}:5000" > /dev/null & + /run/server.sh 5000 "The location of DSM is http://${DHCP_IP}:5000" > /dev/null & fi From 4dc0791ffbc2f60836fee39022e0497a09150b46 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:26:22 +0200 Subject: [PATCH 05/16] Trap --- run/server.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index 1774a3f..6a7cbef 100644 --- a/run/server.sh +++ b/run/server.sh @@ -6,11 +6,13 @@ script_name=${BASH_SOURCE[0]} for pid in $(pidof -x $script_name); do if [ $pid != $$ ]; then - kill -9 $pid 2> /dev/null + kill -15 $pid 2> /dev/null wait $pid 2> /dev/null fi done +trap exit SIGINT SIGTERM + # Serve the page HTML="

$2

" RESPONSE="HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n$HTML\r\n" From 328c3728b32fb128ef7a05710411573a22f2ec66 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:27:06 +0200 Subject: [PATCH 06/16] Trap --- run/server.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/run/server.sh b/run/server.sh index 6a7cbef..6eb2f63 100644 --- a/run/server.sh +++ b/run/server.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash set -eu +trap exit SIGINT SIGTERM # Close any previous instances script_name=${BASH_SOURCE[0]} @@ -11,8 +12,6 @@ for pid in $(pidof -x $script_name); do fi done -trap exit SIGINT SIGTERM - # Serve the page HTML="

$2

" RESPONSE="HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n$HTML\r\n" From 13bb1b6b789ed93536e089048120c1576bec7f5c Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:38:58 +0200 Subject: [PATCH 07/16] Netcat --- run/server.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/run/server.sh b/run/server.sh index 6eb2f63..61d4fae 100644 --- a/run/server.sh +++ b/run/server.sh @@ -16,8 +16,4 @@ done HTML="

$2

" RESPONSE="HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n$HTML\r\n" -while { echo -en "$RESPONSE"; } | nc -lN "${1:-8080}"; do - echo "================================================" -done - - +while true; do (echo -en "$RESPONSE") | timeout 1 nc -lp "${1:-8080}"; done From 945948b85b2a4add0928698ea05a53dcebbb42e5 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 15:47:59 +0200 Subject: [PATCH 08/16] Loop --- run/server.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/run/server.sh b/run/server.sh index 61d4fae..8421023 100644 --- a/run/server.sh +++ b/run/server.sh @@ -14,6 +14,11 @@ done # Serve the page HTML="

$2

" -RESPONSE="HTTP/1.1 200 OK\r\nConnection: close\r\n\r\n$HTML\r\n" +LENGTH=$(echo "$HTML" | wc -c); -while true; do (echo -en "$RESPONSE") | timeout 1 nc -lp "${1:-8080}"; done +RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML" + +while true; do + echo -en "$RESPONSE" | timeout 1 nc -lp "${1:-8080}"; + echo "loop" +done From c590c6d1b32c4d29f64f4fadd8de5489ef05d581 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:00:56 +0200 Subject: [PATCH 09/16] Netcat --- run/server.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/run/server.sh b/run/server.sh index 8421023..3e006ee 100644 --- a/run/server.sh +++ b/run/server.sh @@ -16,9 +16,8 @@ done HTML="

$2

" LENGTH=$(echo "$HTML" | wc -c); -RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML" +RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" while true; do - echo -en "$RESPONSE" | timeout 1 nc -lp "${1:-8080}"; - echo "loop" + echo -en "$RESPONSE" | nc -N -lp "${1:-8080}"; done From acc53262b8331b49764e14c12ce542d066fa422a Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:02:21 +0200 Subject: [PATCH 10/16] Spaces --- run/server.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/run/server.sh b/run/server.sh index 3e006ee..fbdc4cc 100644 --- a/run/server.sh +++ b/run/server.sh @@ -9,7 +9,7 @@ for pid in $(pidof -x $script_name); do if [ $pid != $$ ]; then kill -15 $pid 2> /dev/null wait $pid 2> /dev/null - fi + fi done # Serve the page @@ -18,6 +18,6 @@ LENGTH=$(echo "$HTML" | wc -c); RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" -while true; do - echo -en "$RESPONSE" | nc -N -lp "${1:-8080}"; +while true; do + echo -en "$RESPONSE" | nc -N -lp "${1:-8080}"; done From ce029c34d92d38adcf5e8a2097b50b3853cea92e Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:08:18 +0200 Subject: [PATCH 11/16] Font --- run/server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index fbdc4cc..2375682 100644 --- a/run/server.sh +++ b/run/server.sh @@ -13,7 +13,7 @@ for pid in $(pidof -x $script_name); do done # Serve the page -HTML="

$2

" +HTML="

$2

" LENGTH=$(echo "$HTML" | wc -c); RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" From e0a4689f6e30348ce9f5ac478c9f8145b6cb2c09 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:12:10 +0200 Subject: [PATCH 12/16] Style --- run/server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index 2375682..0bfbb28 100644 --- a/run/server.sh +++ b/run/server.sh @@ -13,7 +13,7 @@ for pid in $(pidof -x $script_name); do done # Serve the page -HTML="

$2

" +HTML="

$2

" LENGTH=$(echo "$HTML" | wc -c); RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" From 78a64cf4d1187b299fe8808834e002159dd6bd4a Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:15:42 +0200 Subject: [PATCH 13/16] Length --- run/server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index 0bfbb28..286aaf5 100644 --- a/run/server.sh +++ b/run/server.sh @@ -14,7 +14,7 @@ done # Serve the page HTML="

$2

" -LENGTH=$(echo "$HTML" | wc -c); +LENGTH="$(echo "$HTML" | wc -c)" RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" From cb27c3117b5529d073ddad56a0b6e684b3510fe9 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:17:54 +0200 Subject: [PATCH 14/16] Length --- run/server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index 286aaf5..5a3cc21 100644 --- a/run/server.sh +++ b/run/server.sh @@ -14,7 +14,7 @@ done # Serve the page HTML="

$2

" -LENGTH="$(echo "$HTML" | wc -c)" +LENGTH=$(echo "${HTML}" | wc -c) RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" From 4d2ee92cea1806f20bbcd564486967e5a83827d5 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:19:51 +0200 Subject: [PATCH 15/16] Length --- run/server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index 5a3cc21..ae8d4c8 100644 --- a/run/server.sh +++ b/run/server.sh @@ -14,7 +14,7 @@ done # Serve the page HTML="

$2

" -LENGTH=$(echo "${HTML}" | wc -c) +LENGTH="${#HTML}" RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" From e3f59877bb85f8d7177fa4be897bcaf8ec8d1649 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 20 Apr 2023 16:22:42 +0200 Subject: [PATCH 16/16] Space --- run/server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/server.sh b/run/server.sh index ae8d4c8..a4b28b5 100644 --- a/run/server.sh +++ b/run/server.sh @@ -14,7 +14,7 @@ done # Serve the page HTML="

$2

" -LENGTH="${#HTML}" +LENGTH="${#HTML}" RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n"