From 85f05fcc7729fdc54741cae3b7fa244e166c0fde Mon Sep 17 00:00:00 2001 From: Amir Zarrinkafsh Date: Sat, 6 Jun 2020 20:32:24 +1000 Subject: [PATCH] Refactor Dnsmasq script to support multiple cache ips This change is a continuation of #54, it modifies the output of the dnsmasq script to host file format which allows round robin DNS entries. There is a caveat with round robin DNS entries in dnsmasq, they only supports a single address for wildcard domains, for example: *.cdn.blizzard.com. If previously you had the generated .conf files dumped into a directory where dnsmasq automatically loaded on start-up, you will need to create config that loads all the host files, for example: **lancache.conf** ```conf addn-hosts=/etc/dnsmasq/conf.d/blizzard.hosts addn-hosts=/etc/dnsmasq/conf.d/steam.hosts addn-hosts=/etc/dnsmasq/conf.d/uplay.hosts ``` Closes #107. --- scripts/create-dnsmasq.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/create-dnsmasq.sh b/scripts/create-dnsmasq.sh index 84fddf8..da12c87 100755 --- a/scripts/create-dnsmasq.sh +++ b/scripts/create-dnsmasq.sh @@ -42,7 +42,7 @@ while read -r entry; do cacheip=$(jq -r 'if type == "array" then .[] else . end' <<< ${!cacheipname} | xargs) while read -r fileid; do while read -r filename; do - destfilename=$(echo $filename | sed -e 's/txt/conf/') + destfilename=$(echo $filename | sed -e 's/txt/hosts/') outputfile=${outputdir}/${destfilename} touch "$outputfile" while read -r fileentry; do @@ -55,7 +55,7 @@ while read -r entry; do continue fi for i in ${cacheip}; do - echo "address=/${parsed}/${i}" >> "$outputfile" + echo "${i} ${parsed}" >> "$outputfile" done done <<< $(cat ${basedir}/$filename); done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path)