fix: when guessing domain, double check domain returns right ip (#117)

This commit is contained in:
fryorcraken 2024-08-19 20:11:06 +10:00 committed by GitHub
parent bfc5762335
commit 0d83db25fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 52 additions and 40 deletions

18
run_node.sh Normal file → Executable file
View File

@ -2,7 +2,7 @@
echo "I am a nwaku node"
if test -n "${ETH_CLIENT_ADDRESS}" -o ; then
if [ -n "${ETH_CLIENT_ADDRESS}" ] ; then
echo "ETH_CLIENT_ADDRESS variable was renamed to RLN_RELAY_ETH_CLIENT_ADDRESS"
echo "Please update your .env file"
exit 1
@ -17,7 +17,7 @@ MY_EXT_IP=$(wget -qO- https://api4.ipify.org)
DNS_WSS_CMD=
if [ -z "${DOMAIN}" ]; then
echo "DOMAIN is unset, trying to guess it"
echo "auto-domain: DOMAIN is unset, trying to guess it"
# Check if we have an IP
IPCHECK=$(echo "${MY_EXT_IP}" | grep -c '^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$')
@ -25,6 +25,7 @@ if [ -z "${DOMAIN}" ]; then
if [ "${IPCHECK}" -ne 1 ]; then
echo "Failed to get ip, received: '${MY_EXT_IP}'"
else
echo "auto-domain: ip is '${MY_EXT_IP}'"
# TODO: Include this in nwaku docker image
apk update
apk add bind-tools
@ -39,7 +40,18 @@ if [ -z "${DOMAIN}" ]; then
echo "Failed to get DNS, received: '${DNS}'"
else
DOMAIN=$(echo "${DNS}" | sed s/\.$//)
echo "DOMAIN deduced and set to ${DOMAIN}"
echo "auto-domain: DOMAIN deduced and set to ${DOMAIN}"
# Double check the domain is setup to return right IP
# OpenDNS servers are used to bypass /etc/hosts as it may return loopback address
DNS_IP=$(dig +short @208.67.222.222 "${DNS}")
if [ "${DNS_IP}" != "${MY_EXT_IP}" ]; then
echo "auto-domain: DNS queried returned a different ip: '${DNS_IP}', unsetting DOMAIN"
unset DOMAIN
else
echo "auto-domain: last verification successful, DOMAIN=${DOMAIN}"
fi
fi
fi
fi