From 85f05fcc7729fdc54741cae3b7fa244e166c0fde Mon Sep 17 00:00:00 2001
From: Amir Zarrinkafsh <nightah@me.com>
Date: Sat, 6 Jun 2020 20:32:24 +1000
Subject: [PATCH 1/2] 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)

From 494a89f1813f67b2597cb29e22ee047815d6e35d Mon Sep 17 00:00:00 2001
From: Amir Zarrinkafsh <nightah@me.com>
Date: Thu, 25 Jun 2020 09:15:42 +1000
Subject: [PATCH 2/2] Generate lancache.conf based on specified cache entries

---
 scripts/create-dnsmasq.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/create-dnsmasq.sh b/scripts/create-dnsmasq.sh
index da12c87..ab32a80 100755
--- a/scripts/create-dnsmasq.sh
+++ b/scripts/create-dnsmasq.sh
@@ -27,6 +27,7 @@ done <<< $(jq -r '.cache_domains | to_entries[] | .key' config.json)
 
 rm -rf ${outputdir}
 mkdir -p ${outputdir}
+touch ${outputdir}/lancache.conf
 while read -r entry; do
         unset cacheip
         unset cachename
@@ -44,6 +45,7 @@ while read -r entry; do
                 while read -r filename; do
                         destfilename=$(echo $filename | sed -e 's/txt/hosts/')
                         outputfile=${outputdir}/${destfilename}
+                        echo "addn-hosts=/etc/dnsmasq.d/${destfilename}" >> ${outputdir}/lancache.conf
                         touch "$outputfile"
                         while read -r fileentry; do
                                 # Ignore comments