From dabdf5728e5b419c3a23f8e2bf21e344f29cbf43 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 15 Apr 2025 11:03:37 +0100 Subject: [PATCH] resolv: Fix processing more DNSSL options than RDNSS --- hooks/20-resolv.conf | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/hooks/20-resolv.conf b/hooks/20-resolv.conf index 7c29e276..bd0b0df5 100644 --- a/hooks/20-resolv.conf +++ b/hooks/20-resolv.conf @@ -81,21 +81,30 @@ eval_nd_dns() { eval rdnsstime=\$nd${i}_rdnss${j}_lifetime - [ -z "$rdnsstime" ] && return 1 - ltime=$(($rdnsstime - $offset)) - if [ "$ltime" -gt 0 ]; then - eval rdnss=\$nd${i}_rdnss${j}_servers - [ -n "$rdnss" ] && new_rdnss="$new_rdnss${new_rdnss:+ }$rdnss" + if [ -n "$rdnsstime" ]; then + ltime=$(($rdnsstime - $offset)) + if [ "$ltime" -gt 0 ]; then + eval rdnss=\$nd${i}_rdnss${j}_servers + if [ -n "$rdnss" ]; then + new_rdnss="$new_rdnss${new_rdnss:+ }$rdnss" + fi + fi fi eval dnssltime=\$nd${i}_dnssl${j}_lifetime - [ -z "$dnssltime" ] && return 1 - ltime=$(($dnssltime - $offset)) - if [ "$ltime" -gt 0 ]; then - eval dnssl=\$nd${i}_dnssl${j}_search - [ -n "$dnssl" ] && new_dnssl="$new_dnssl${new_dnssl:+ }$dnssl" + if [ -n "$dnssltime" ]; then + ltime=$(($dnssltime - $offset)) + if [ "$ltime" -gt 0 ]; then + eval dnssl=\$nd${i}_dnssl${j}_search + if [ -n "$dnssl" ]; then + new_dnssl="$new_dnssl${new_dnssl:+ }$dnssl" + fi + fi fi + # Break when we don't have either + [ -z "$rdnsstime" ] && [ -z "$dnssltime" ] && return 1 + j=$(($j + 1)) return 0 } -- 2.47.2