From 4207636899e091b79f83ccc41f44a4dfaee52652 Mon Sep 17 00:00:00 2001 From: Ycarus Date: Mon, 17 Sep 2018 10:59:44 +0200 Subject: [PATCH] Add IP of domains each restart of omr-bypass --- luci-app-omr-bypass/root/etc/init.d/omr-bypass | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index f33b2cdba..dbadfd48a 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -18,6 +18,19 @@ _bypass_ip() { fi } +_bypass_domain() { + # Bypass domain even if OMR DNS is not used + domains=$(uci -q get dhcp.@dnsmasq[0].ipset) + for domain in ${domains//\// }; do + if [ -n "$domain" ] && [ "$domain" != "ss_rules_dst_bypass" ]; then + resolve=$(dig a +nocmd +noall +answer $domain | awk '{print $5}') + for ip in $resolve; do + _bypass_ip $ip + done + fi + done +} + _bypass_proto() { local proto="$1" [ -z "$proto" ] && return @@ -34,6 +47,8 @@ start_service() { config_load omr-bypass config_list_foreach ips "ip" _bypass_ip + _bypass_domain + ip rule add prio 1 fwmark 0x539 lookup 991337 > /dev/null 2>&1 if [ "$(iptables -w 40 -t mangle -L | grep 'match-set ss_rules_dst_bypass dst MARK set')" = "" ]; then