From b4431bcfaa38ccdb3d96c66e8febe1d4bdf401cc Mon Sep 17 00:00:00 2001 From: Amir Zarrinkafsh Date: Thu, 22 Oct 2020 19:56:07 +1100 Subject: [PATCH] Fix wildcard domains in dnsmasq script (#143) While #140 added support for round-robin DNS the script needs a slight modification to ensure that wildcard domains are still added with the old method due to dnsmasq limitations. This change will include all wildcard domains in the generated `lancache.conf` along with all the `addn-hosts=` entries. --- scripts/create-dnsmasq.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/create-dnsmasq.sh b/scripts/create-dnsmasq.sh index ab32a80..559fd59 100755 --- a/scripts/create-dnsmasq.sh +++ b/scripts/create-dnsmasq.sh @@ -44,9 +44,25 @@ while read -r entry; do while read -r fileid; do while read -r filename; do destfilename=$(echo $filename | sed -e 's/txt/hosts/') + lancacheconf=${outputdir}/lancache.conf outputfile=${outputdir}/${destfilename} - echo "addn-hosts=/etc/dnsmasq.d/${destfilename}" >> ${outputdir}/lancache.conf + echo "addn-hosts=/etc/dnsmasq.d/${destfilename}" >> ${lancacheconf} touch "$outputfile" + # Wildcard entries + while read -r fileentry; do + # Ignore comments + if [[ $fileentry == \#* ]]; then + continue + fi + wildcard=$(echo $fileentry | grep "*." | sed -e "s/^\*\.//") + if grep -q "$wildcard" "$lancacheconf"; then + continue + fi + for i in ${cacheip}; do + echo "address=/${wildcard}/${i}" >> "$lancacheconf" + done + done <<< $(cat ${basedir}/$filename); + # All other entries while read -r fileentry; do # Ignore comments if [[ $fileentry == \#* ]]; then