Apply dns servers only if no vpn option is true

https://github.com/alexbelgium/hassio-addons/issues/2449
This commit is contained in:
Alexandre
2026-02-06 10:16:05 +01:00
committed by GitHub
parent a5f005e1c6
commit 4ad9488db8

View File

@@ -9,35 +9,38 @@ set -e
# Avoid usage of local dns such as adguard home or pihole\n"
if bashio::config.has_value 'DNS_server'; then
# Define variables
DNSSERVER=$(bashio::config 'DNS_server')
DNS=""
DNSLIST=""
# Get DNS servers
# shellcheck disable=SC2086
for server in ${DNSSERVER//,/ }; do # Separate comma separated values
# Only add DNS if successful
if ping -c 1 "$server" &> /dev/null; then
DNS="${DNS}nameserver $server\n"
DNSLIST="$server $DNSLIST"
if ! bashio::config.is_true "openvpn_enabled" && ! bashio::config.is_true "wireguard_enabled"; then
# Define variables
DNSSERVER=$(bashio::config 'DNS_server')
DNS=""
DNSLIST=""
# Get DNS servers
# shellcheck disable=SC2086
for server in ${DNSSERVER//,/ }; do # Separate comma separated values
# Only add DNS if successful
if ping -c 1 "$server" &> /dev/null; then
DNS="${DNS}nameserver $server\n"
DNSLIST="$server $DNSLIST"
else
bashio::log.warning "DNS $server was requested but can't be pinged. It won't be used"
fi
done
# Only add DNS if there are DNS set
# shellcheck disable=SC2236
if [[ -n "${DNS:-}" ]]; then
# Write resolv.conf
# shellcheck disable=SC2059
printf "${DNS}" > /etc/resolv.conf
chmod 644 /etc/resolv.conf
bashio::log.info "DNS SERVERS set to $DNSLIST"
else
bashio::log.warning "DNS $server was requested but can't be pinged. It won't be used"
bashio::log.warning "No valid DNS were found. Using default router (or HA) dns servers."
fi
done
# Only add DNS if there are DNS set
# shellcheck disable=SC2236
if [[ -n "${DNS:-}" ]]; then
# Write resolv.conf
# shellcheck disable=SC2059
printf "${DNS}" > /etc/resolv.conf
chmod 644 /etc/resolv.conf
bashio::log.info "DNS SERVERS set to $DNSLIST"
else
bashio::log.warning "No valid DNS were found. Using default router (or HA) dns servers."
bashio::log.warning "DNS servers are enabled but a vpn is enabled. Resolv will be handled through the vpn script"
fi
else
bashio::log.info "DNS Servers option empty. Using default router (or HA) dns servers."
fi