diff --git a/bind/entrypoint.sh b/bind/entrypoint.sh index 55c9fe6..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." - exit 1 + 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 @@ -34,19 +38,36 @@ 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 "[ERROR] Failed to fetch DOMAIN" + 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 "[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