diff --git a/README.md b/README.md index d9d606b..c2d696f 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,9 @@ You can use this list one of two ways: There is a cache_domains.json file to define CDNs and additional meta deta with the following structure - cache_domains: Array of cache_domain object - - name: shortname for the cache domain + - name: shortname for the cache domain. Should match `^[0-9A-Za-z]$` - description: a longer description to aid others in identifying what this domain does (not all users of this repo will want to enable all caches) - notes: implementation specific notes which may be useful for other users - - mixed_content: true if this domain hosts mixed https and http content (a straight dns injection is unlikely to work in this case). Assumed to be false if undefined - domain_files: array of files within the repo assosciated to the cdn. Most cdn's only need one file - Example domain entry for origin ```json @@ -27,7 +26,6 @@ There is a cache_domains.json file to define CDNs and additional meta deta with "name": "origin", "description": "CDN for origin", "notes": "Should be enabled for HTTP traffic only or with a HTTPS proxy else origin client download fails", - "mixed_content": true, "domain_files": ["origin.txt"] } ] @@ -43,6 +41,7 @@ There is a separate file for each cacheable service. Some notes on formatting: - Wildcards are permitted as per below - Lines starting with a # will be treated as a comment. - Files must end with an empty newline. + - File names must match the regular expression `^[0-9A-Za-z].txt` #### Wildcards @@ -65,10 +64,20 @@ Please fork this repository and submit pull requests if you have any extra hostn If the CDN you are adding does not already exist please remember to add an entry within cache_domains.json as well as a new .txt file +### Uncacheable CDNs + +Certain CDNs are not suitable for inclusion on this list because the content is entirely delivered over HTTPS and thus cannot be cached. + +For a list of currently identified uncacheable CDNs please see these issues: https://github.com/uklans/cache-domains/issues?q=is%3Aissue+is%3Aopen+label%3Ahttps-cantfix + ## Issues and Feedback Please raise all issues and feedback on GitHub at [uklans/cache-domains](https://github.com/uklans/cache-domains/issues). +## Useful Information + +There are a few useful anecdotes on cache domains usage in some old issues https://github.com/uklans/cache-domains/issues?q=is%3Aissue+is%3Aclosed+label%3Afor-reference-only + ## License The MIT License (MIT) diff --git a/apple.txt b/apple.txt index 7af9799..ef90914 100644 --- a/apple.txt +++ b/apple.txt @@ -1 +1 @@ -swcdn.apple.com \ No newline at end of file +swcdn.apple.com diff --git a/arenanet.txt b/arenanet.txt index d916aaa..19132a1 100644 --- a/arenanet.txt +++ b/arenanet.txt @@ -1,4 +1,4 @@ assetcdn.101.arenanetworks.com assetcdn.102.arenanetworks.com assetcdn.103.arenanetworks.com -live.patcher.bladeandsoul.com \ No newline at end of file +live.patcher.bladeandsoul.com diff --git a/cache_domains.json b/cache_domains.json index aeaaef0..0f20039 100644 --- a/cache_domains.json +++ b/cache_domains.json @@ -20,6 +20,11 @@ "description": "Daybreak games CDN", "domain_files": ["daybreak.txt"] }, + { + "name": "epicgames", + "description": "CDN for Epic Games", + "domain_files": ["epicgames.txt"] + }, { "name": "frontier", "description": "CDN for frontier games", @@ -36,16 +41,14 @@ "domain_files": ["nexusmods.txt"] }, { - "name": "nintendo", - "description": "CDN for nintendo (swtich)", - "domain_files": ["nintendo.txt"] + "name": "neverwinter", + "description": "Cryptic CDN for Neverwinter", + "domain_files": ["neverwinter.txt"] }, { - "name": "origin", - "description": "CDN for origin", - "notes": "Should be enabled for HTTP traffic only or with a HTTPS proxy else origin client download fails", - "mixed_content": true, - "domain_files": ["origin.txt"] + "name": "nintendo", + "description": "CDN for Nintendo consoles and download servers", + "domain_files": ["nintendo.txt"] }, { "name": "renegadex", @@ -82,10 +85,20 @@ "description": "CDN for uplay downloader", "domain_files": ["uplay.txt"] }, + { + "name": "teso", + "description": "CDN for The Elder Scrolls Online", + "domain_files": ["teso.txt"] + }, { "name": "twitch", "description": "CDN for twitch games / mods and addons", - "domain_files": ["twitchapp.txt"] + "domain_files": ["twitch.txt"] + }, + { + "name": "warframe", + "description": "CDN for Warframe", + "domain_files": ["warframe.txt"] }, { "name": "wargaming", @@ -100,9 +113,7 @@ { "name": "xboxlive", "description": "CDN for xboxlive", - "domain_files": ["xboxlive.txt"], - "mixed_content": true + "domain_files": ["xboxlive.txt"] } ] } - diff --git a/epicgames.txt b/epicgames.txt new file mode 100644 index 0000000..9c5b10f --- /dev/null +++ b/epicgames.txt @@ -0,0 +1,5 @@ +epicgames-download1.akamaized.net +download.epicgames.com +download2.epicgames.com +download3.epicgames.com +download4.epicgames.com diff --git a/frontier.txt b/frontier.txt index 1a28124..132127e 100644 --- a/frontier.txt +++ b/frontier.txt @@ -1 +1 @@ -cdn.zaonce.net \ No newline at end of file +cdn.zaonce.net diff --git a/hirez.txt b/hirez.txt index 6dbcbe3..c127b57 100644 --- a/hirez.txt +++ b/hirez.txt @@ -1 +1 @@ -hirez.http.internapcdn.net \ No newline at end of file +hirez.http.internapcdn.net diff --git a/neverwinter.txt b/neverwinter.txt new file mode 100644 index 0000000..35e4eb1 --- /dev/null +++ b/neverwinter.txt @@ -0,0 +1 @@ +level3.nwhttppatch.crypticstudios.com diff --git a/nexusmods.txt b/nexusmods.txt index 2453607..20f38c5 100644 --- a/nexusmods.txt +++ b/nexusmods.txt @@ -1 +1 @@ -filedelivery.nexusmods.com \ No newline at end of file +filedelivery.nexusmods.com diff --git a/nintendo.txt b/nintendo.txt index 0f9de4b..7bc0a29 100644 --- a/nintendo.txt +++ b/nintendo.txt @@ -1,8 +1,13 @@ ccs.cdn.wup.shop.nintendo.com -pushmo.hac.lp1.eshop.nintendo.net +ccs.cdn.wup.shop.nintendo.net +ccs.cdn.wup.shop.nintendo.net.edgesuite.net +geisha-wup.cdn.nintendo.net +geisha-wup.cdn.nintendo.net.edgekey.net +idbe-wup.cdn.nintendo.net +idbe-wup.cdn.nintendo.net.edgekey.net ecs-lp1.hac.shop.nintendo.net receive-lp1.dg.srv.nintendo.net -aqua.hac.lp1.d4c.nintendo.net -atum.hac.lp1.d4c.nintendo.net -bugyo.hac.lp1.eshop.nintendo.net -tagaya.hac.lp1.eshop.nintendo.net +*.wup.shop.nintendo.net +*.wup.eshop.nintendo.net +*.hac.lp1.d4c.nintendo.net +*.hac.lp1.eshop.nintendo.net diff --git a/origin.txt b/origin.txt deleted file mode 100644 index 2d07963..0000000 --- a/origin.txt +++ /dev/null @@ -1,6 +0,0 @@ -# WARNING: Origin has been seen downloading https client downloads on origin-a.akamaihd.net. A solution should be in place to forward https to the origin server (eg sniproxy) -origin-a.akamaihd.net -akamai.cdn.ea.com -lvlt.cdn.ea.com -river.data.ea.com -origin-a.akamaihd.net.edgesuite.net diff --git a/renegadex.txt b/renegadex.txt index fa42197..ca35def 100644 --- a/renegadex.txt +++ b/renegadex.txt @@ -9,4 +9,4 @@ rxp-sg.cncirc.net rxp-la.cncirc.net rxp-fin.cncirc.net denver1.renegade-x.com -seattle1.renegade-x.com \ No newline at end of file +seattle1.renegade-x.com diff --git a/riot.txt b/riot.txt index d81a971..b75b6f5 100644 --- a/riot.txt +++ b/riot.txt @@ -2,4 +2,4 @@ l3cdn.riotgames.com worldwide.l3cdn.riotgames.com riotgamespatcher-a.akamaihd.net riotgamespatcher-a.akamaihd.net.edgesuite.net -lol.dyn.riotcdn.net +*.dyn.riotcdn.net diff --git a/rockstar.txt b/rockstar.txt index 9947953..4922bbe 100644 --- a/rockstar.txt +++ b/rockstar.txt @@ -1 +1 @@ -patches.rockstargames.com \ No newline at end of file +patches.rockstargames.com diff --git a/scripts/config.example.json b/scripts/config.example.json index 6d58ee4..18362c4 100644 --- a/scripts/config.example.json +++ b/scripts/config.example.json @@ -1,6 +1,6 @@ { "ips": { - "steam": "10.10.3.11", + "steam": ["10.10.3.10", "10.10.3.11"], "origin": "10.10.3.12", "blizzard": "10.10.3.13", "windows": "10.10.3.14", diff --git a/scripts/create-dnsmasq.sh b/scripts/create-dnsmasq.sh index e0e0d43..c2da94b 100755 --- a/scripts/create-dnsmasq.sh +++ b/scripts/create-dnsmasq.sh @@ -16,7 +16,7 @@ fi cachenamedefault="disabled" while read line; do - ip=$(jq -r ".ips[\"${line}\"]" config.json) + ip=$(jq ".ips[\"${line}\"]" config.json) declare "cacheip$line"="$ip" done <<< $(jq -r '.ips | to_entries[] | .key' config.json) @@ -39,7 +39,7 @@ while read entry; do continue; fi cacheipname="cacheip${!cachename}" - cacheip=${!cacheipname} + cacheip=$(jq -r 'if type == "array" then .[] else . end' <<< ${!cacheipname} | xargs) while read fileid; do while read filename; do destfilename=$(echo $filename | sed -e 's/txt/conf/') @@ -54,7 +54,9 @@ while read entry; do if grep -q "$parsed" $outputfile; then continue fi - echo "address=/${parsed}/${cacheip}" >> $outputfile + for i in ${cacheip}; do + echo "address=/${parsed}/${i}" >> $outputfile + done done <<< $(cat ${basedir}/$filename); done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path) done <<< $(jq -r ".cache_domains[$entry].domain_files | to_entries[] | .key" $path) diff --git a/scripts/create-unbound.sh b/scripts/create-unbound.sh index c0d4c0e..10ee026 100755 --- a/scripts/create-unbound.sh +++ b/scripts/create-unbound.sh @@ -16,7 +16,7 @@ fi cachenamedefault="disabled" while read line; do - ip=$(jq -r ".ips[\"${line}\"]" config.json) + ip=$(jq ".ips[\"${line}\"]" config.json) declare "cacheip$line"="$ip" done <<< $(jq -r '.ips | to_entries[] | .key' config.json) @@ -39,7 +39,7 @@ while read entry; do continue; fi cacheipname="cacheip${!cachename}" - cacheip=${!cacheipname} + cacheip=$(jq -r 'if type == "array" then .[] else . end' <<< ${!cacheipname} | xargs) while read fileid; do while read filename; do destfilename=$(echo $filename | sed -e 's/txt/conf/') @@ -56,7 +56,9 @@ while read entry; do continue fi echo " local-zone: \"${parsed}\" redirect" >> $outputfile - echo " local-data: \"${parsed} 30 IN A ${cacheip}\"" >> $outputfile + for i in ${cacheip}; do + echo " local-data: \"${parsed} 30 IN A ${i}\"" >> $outputfile + done done <<< $(cat ${basedir}/$filename); done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path) done <<< $(jq -r ".cache_domains[$entry].domain_files | to_entries[] | .key" $path) diff --git a/sony.txt b/sony.txt index 526d08d..4776937 100644 --- a/sony.txt +++ b/sony.txt @@ -1,3 +1,3 @@ pls.patch.station.sony.com gs2.ww.prod.dl.playstation.net -gs2.sonycoment.loris-e.llnwd.net \ No newline at end of file +gs2.sonycoment.loris-e.llnwd.net diff --git a/teso.txt b/teso.txt new file mode 100644 index 0000000..f4b529e --- /dev/null +++ b/teso.txt @@ -0,0 +1 @@ +live.patcher.elderscrollsonline.com diff --git a/twitchapp.txt b/twitch.txt similarity index 100% rename from twitchapp.txt rename to twitch.txt diff --git a/warframe.txt b/warframe.txt new file mode 100644 index 0000000..379d22e --- /dev/null +++ b/warframe.txt @@ -0,0 +1 @@ +content.warframe.com diff --git a/windowsupdates.txt b/windowsupdates.txt index a6327ce..51e49ea 100644 --- a/windowsupdates.txt +++ b/windowsupdates.txt @@ -6,3 +6,8 @@ dl.delivery.mp.microsoft.com *.update.microsoft.com *.do.dsp.mp.microsoft.com *.microsoft.com.edgesuite.net +amupdatedl.microsoft.com +amupdatedl2.microsoft.com +amupdatedl3.microsoft.com +amupdatedl4.microsoft.com +amupdatedl5.microsoft.com