commit 505e642430982463bc1785ca2366177b287f2d28 Author: Eliezer Croitoru Date: Tue Jan 7 01:48:53 2025 +0200 1 diff --git a/appUpdaterScript.rsc b/appUpdaterScript.rsc new file mode 100644 index 0000000..eb95f03 --- /dev/null +++ b/appUpdaterScript.rsc @@ -0,0 +1,16 @@ +{ + :do { + :local debug 0; + :foreach script in=[/system/script/find where name~"update[a-zA-Z]+FromDnsCache" ] do={ + :do { + /system/script/run ($script->"name"); + } on-error={ + if ($debug > 0) do={ + :log info "error adding "; + } + } + } + } on-error={ + :log info "RUNTIME Error"; + } +} diff --git a/freetv.json b/freetv.json new file mode 100644 index 0000000..8409f2b --- /dev/null +++ b/freetv.json @@ -0,0 +1,5 @@ +{ + "staticDomains": [ "images.frp1.ott.kaltura.com", "api.frp1.ott.kaltura.com", "cfvod.kaltura.com", "tdbc.redgalaxy.com" ], + "regexPatterns": [ "(\\.)?il\\.cdn-redge\\.media\$", "(\\.)?freetv\\.tv\$" ], + "appName": "FreeTV" +} diff --git a/gen-app-script-from-json.rb b/gen-app-script-from-json.rb new file mode 100644 index 0000000..f450b72 --- /dev/null +++ b/gen-app-script-from-json.rb @@ -0,0 +1,45 @@ +#!/usr/bin/env ruby + +require "json" + + +appUpdateTemplateFile = "updateAppFromDnsCache-template.rsc" + +templateFile = File.open(appUpdateTemplateFile) + +appUpdateTemplateString = templateFile.readlines + +templateFile.close + +appJsonFile = ARGV[0] + +file = File.open(appJsonFile) +data = JSON.load(file) +file.close + +#puts JSON.pretty_generate(data) +domainsString = "\"#{data["staticDomains"].join("\"; \"")}\"" +domainsRegexString = "\"#{data["regexPatterns"].join("\"; \"")}\"" +domainsRegexString = domainsRegexString.gsub("$",'\$').gsub("\.", "\\.") +#puts domainsRegexString + +appUpdateTemplateString.each do |line| +case line + when /##INSERT_LINES.*/ + if data["staticDomains"].nil? or data["staticDomains"].empty? + puts(" :local staticDomains;") + + else + puts(" :local staticDomains { \"#{data["staticDomains"].join("\"; \"")}\" };") + end + if data["regexPatterns"].nil? or data["regexPatterns"].empty? + puts(" :local regexString;") + else + puts(" :local regexString { #{domainsRegexString} };") + end + when /:local addressList "###ADDRESS_LIST###"/ + puts(" :local addressList \"#{data["appName"]}\"") + else + puts(line) +end +end diff --git a/google-firebase.json b/google-firebase.json new file mode 100644 index 0000000..a3d9951 --- /dev/null +++ b/google-firebase.json @@ -0,0 +1,5 @@ +{ + "staticDomains": [ "firebaselogging-pa.googleapis.com", "firebaseremoteconfig.googleapis.com", "" ], + "regexPatterns": [ ], + "appName": "googleFireBase" +} diff --git a/updateAppFromDnsCache-template.rsc b/updateAppFromDnsCache-template.rsc new file mode 100644 index 0000000..65deccf --- /dev/null +++ b/updateAppFromDnsCache-template.rsc @@ -0,0 +1,35 @@ +{ + :do { + :local debug 0; + :local addressList "###ADDRESS_LIST###"; +##INSERT_LINES + + :foreach dom in=$staticDomains do={ + :do { + /ip/firewall/address-list/add address=$dom list=$addressList; + } on-error={ + if ($debug > 0) do={ + :log info "error adding "; + } + } + } + + :foreach rec in=[/ip/dns/cache/print as-value ] do={ + :foreach regexTestString in=$regexString do={ + if ( ($rec->"type")~"(CNAME|A)\$" ) do={ + if ( ($rec->"name")~"$regexTestString" ) do={ + :do { + /ip/firewall/address-list/add address=($rec->"name") list=$addressList; + } on-error={ + if ($debug > 0) do={ + :log info "error adding "; + } + } + } + } + } + } + } on-error={ + :log info "RUNTIME Error"; + } +}