[openwrt/openwrt] dnsmasq: 'ipset' config sections
LEDE Commits
lede-commits at lists.infradead.org
Wed Nov 11 14:47:43 EST 2020
dedeckeh pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/acb336235cc640980ea549655b0702daf9e628f8
commit acb336235cc640980ea549655b0702daf9e628f8
Author: Aleksandr Mezin <mezin.alexander at gmail.com>
AuthorDate: Fri Oct 23 11:02:37 2020 +0600
dnsmasq: 'ipset' config sections
Allow configuring ipsets with dedicated config sections:
config ipset
list name 'ss_rules_dst_forward'
list name 'ss_rules6_dst_forward'
list domain 't.me'
list domain 'telegram.org'
instead of current, rather inconvenient syntax:
config dnsmasq
...
list ipset '/t.me/telegram.org/ss_rules_dst_forward,ss_rules6_dst_forward'
Current syntax will still continue to work though.
With this change, a LuCI GUI for DNS ipsets should be easy to implement.
Signed-off-by: Aleksandr Mezin <mezin.alexander at gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh at gmail.com> [PKG_RELEASE increase]
---
package/network/services/dnsmasq/Makefile | 2 +-
.../network/services/dnsmasq/files/dnsmasq.init | 27 ++++++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index 4086aa25e0..ba10ded333 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_UPSTREAM_VERSION:=2.82
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
-PKG_RELEASE:=9
+PKG_RELEASE:=10
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
index 7ecc542b44..680e72f9e7 100644
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -769,6 +769,29 @@ dhcp_relay_add() {
fi
}
+dnsmasq_ipset_add() {
+ local cfg="$1"
+ local ipsets domains
+
+ add_ipset() {
+ ipsets="${ipsets:+$ipsets,}$1"
+ }
+
+ add_domain() {
+ # leading '/' is expected
+ domains="$domains/$1"
+ }
+
+ config_list_foreach "$cfg" "name" add_ipset
+ config_list_foreach "$cfg" "domain" add_domain
+
+ if [ -z "$ipsets" ] || [ -z "$domains" ]; then
+ return 0
+ fi
+
+ xappend "--ipset=$domains/$ipsets"
+}
+
dnsmasq_start()
{
local cfg="$1"
@@ -1056,6 +1079,10 @@ dnsmasq_start()
config_foreach filter_dnsmasq cname dhcp_cname_add "$cfg"
echo >> $CONFIGFILE_TMP
+ echo >> $CONFIGFILE_TMP
+ config_foreach filter_dnsmasq ipset dnsmasq_ipset_add "$cfg"
+ echo >> $CONFIGFILE_TMP
+
echo >> $CONFIGFILE_TMP
mv -f $CONFIGFILE_TMP $CONFIGFILE
mv -f $HOSTFILE_TMP $HOSTFILE
More information about the lede-commits
mailing list