summaryrefslogtreecommitdiffstats
path: root/core/modules/networkd-dispatcher
diff options
context:
space:
mode:
authorJonathan Bauer2019-05-17 16:19:25 +0200
committerJonathan Bauer2019-05-17 16:19:25 +0200
commit3ba62a6984a68361d25bfa24b600338f0c0f8e70 (patch)
tree7c4c9ae09c612f63565ddb69a29d92681540b83e /core/modules/networkd-dispatcher
parent[run-virt] Minor cleanup (diff)
downloadmltk-3ba62a6984a68361d25bfa24b600338f0c0f8e70.tar.gz
mltk-3ba62a6984a68361d25bfa24b600338f0c0f8e70.tar.xz
mltk-3ba62a6984a68361d25bfa24b600338f0c0f8e70.zip
[networkd-dispatcher] retry reverse lookup
Diffstat (limited to 'core/modules/networkd-dispatcher')
-rwxr-xr-xcore/modules/networkd-dispatcher/data/etc/networkd-dispatcher/routable.d/00-fallback-dns-lookup.sh34
1 files changed, 24 insertions, 10 deletions
diff --git a/core/modules/networkd-dispatcher/data/etc/networkd-dispatcher/routable.d/00-fallback-dns-lookup.sh b/core/modules/networkd-dispatcher/data/etc/networkd-dispatcher/routable.d/00-fallback-dns-lookup.sh
index 80260e8d..84f85258 100755
--- a/core/modules/networkd-dispatcher/data/etc/networkd-dispatcher/routable.d/00-fallback-dns-lookup.sh
+++ b/core/modules/networkd-dispatcher/data/etc/networkd-dispatcher/routable.d/00-fallback-dns-lookup.sh
@@ -7,15 +7,22 @@
# * $ADDR -> IP address configured on that interface
check_dns() {
- local fqdn=
- local host_out
- if ! host_out="$(host $ADDR)" ; then
- echo "Failed to retrieve FQDN through reverse lookup on '$ADDR'."
- echo "Falling back to IP-Address if needed."
- fqdn=
- else
- local fqdn="$(<<< $host_out grep -E "$(awk -F. '{print $4"."$3"."$2"."$1}' <<< $ADDR )" | awk '{sub(".$",""); print $5}')"
- fi
+ local fqdn host_out
+ for timeout in 1 1 1 2 2 3 5 5 END; do
+ if [ "$timeout" = "END" ]; then
+ echo "Falling back to IP address if needed."
+ fqdn=
+ break
+ fi
+ host_out="$(host $ADDR)"
+ if [ $? -ne 0 ]; then
+ echo "Failed to retrieve FQDN through reverse lookup on '$ADDR'."
+ sleep $timeout
+ else
+ local fqdn="$(<<< $host_out grep -E "$(awk -F. '{print $4"."$3"."$2"."$1}' <<< $ADDR )" | awk '{sub(".$",""); print $5}')"
+ break
+ fi
+ done
# check domain
local domain="${fqdn#*.}"
@@ -29,7 +36,7 @@ check_dns() {
systemctl restart systemd-resolved
fi
# Check if we received a hostname from the DHCP
- local dhcp_hostname=
+ local dhcp_hostname
for lease in /run/systemd/netif/leases/*; do
grep -qE "^ADDRESS=$ADDR" "$lease" || continue
dhcp_hostname="$(awk -F= '$1 = /HOSTNAME/ {print $2}' "$lease" )"
@@ -59,6 +66,11 @@ check_dns() {
return 0
}
+if [ ! -e /opt/openslx/config ]; then
+ echo "No OpenSLX configuration found - aborting."
+ exit 1
+fi
+
. /opt/openslx/config
if [ "$IFACE" != "${SLX_BRIDGE:-$SLX_PXE_NETIF}" ]; then
@@ -80,4 +92,6 @@ for timeout in 1 1 1 2 2 3 5 5 END; do
sleep "$timeout"
done
+sleep 1
+
check_dns