From 536eb689ac43463a3230b5bfc5b2b68ef2958234 Mon Sep 17 00:00:00 2001 From: dappnodedev Date: Wed, 20 Dec 2023 13:19:07 +0100 Subject: [PATCH 1/2] Fix error being set into txt file --- bind/entrypoint.sh | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/bind/entrypoint.sh b/bind/entrypoint.sh index 55c9fe6..8474fb0 100755 --- a/bind/entrypoint.sh +++ b/bind/entrypoint.sh @@ -20,7 +20,7 @@ fetch_env() { done echo "Error: Failed to fetch $env_var_name after $retries attempts." - exit 1 + return 1 } # Start DNS server in background right away @@ -34,14 +34,30 @@ if [ -n "${_DAPPNODE_GLOBAL_DOMAIN}" ]; then domain=${_DAPPNODE_GLOBAL_DOMAIN} echo "Using existing domain: $domain" else - domain=$(fetch_env "DOMAIN") + fetched_domain=$(fetch_env "DOMAIN") + + if [ $? -eq 0 ]; then + domain=$fetched_domain + else + echo "Failed to fetch DOMAIN" + kill $pid + exit 1 + fi fi if [ -n "${_DAPPNODE_GLOBAL_INTERNAL_IP}" ]; then internal_ip=${_DAPPNODE_GLOBAL_INTERNAL_IP} echo "Using existing domain: $domain" else - internal_ip=$(fetch_env "INTERNAL_IP") + fetched_internal_ip=$(fetch_env "INTERNAL_IP") + + if [ $? -eq 0 ]; then + internal_ip=$fetched_internal_ip + else + echo "Failed to fetch INTERNAL_IP" + kill $pid + exit 1 + fi fi echo "$domain $internal_ip" >cloaking-rules.txt From c81c47da1e5ae358df59fac5fd32d2e8dd3f6171 Mon Sep 17 00:00:00 2001 From: dappnodedev Date: Wed, 20 Dec 2023 16:14:21 +0100 Subject: [PATCH 2/2] Do not exit on fetch failure --- bind/entrypoint.sh | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/bind/entrypoint.sh b/bind/entrypoint.sh index 8474fb0..990b5b3 100755 --- a/bind/entrypoint.sh +++ b/bind/entrypoint.sh @@ -19,13 +19,17 @@ fetch_env() { sleep $wait_time done - echo "Error: Failed to fetch $env_var_name after $retries attempts." + echo " [ERROR] Failed to fetch $env_var_name after $retries attempts." return 1 } # Start DNS server in background right away /app/dnscrypt-proxy & +# Initialize domain and internal_ip variables +domain="" +internal_ip="" + pid=$! # Fetch required environment variables @@ -39,9 +43,7 @@ else if [ $? -eq 0 ]; then domain=$fetched_domain else - echo "Failed to fetch DOMAIN" - kill $pid - exit 1 + echo "[ERROR] Failed to fetch DOMAIN" fi fi @@ -54,15 +56,18 @@ else if [ $? -eq 0 ]; then internal_ip=$fetched_internal_ip else - echo "Failed to fetch INTERNAL_IP" - kill $pid - exit 1 + echo "[ERROR] Failed to fetch INTERNAL_IP" fi fi -echo "$domain $internal_ip" >cloaking-rules.txt +# Only write to cloaking-rules.txt if both domain and internal_ip are available +if [ -n "$domain" ] && [ -n "$internal_ip" ]; then + echo "$domain $internal_ip" >cloaking-rules.txt -kill $pid -wait $pid + kill $pid + wait $pid -/app/dnscrypt-proxy + /app/dnscrypt-proxy +else + echo "[ERROR] Missing domain or internal IP. Cloaking rules not updated. Dyndns domain will not be forwarded to internal IP." +fi