|
@@ -769,6 +769,29 @@ dhcp_relay_add() {
|
|
fi
|
|
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()
|
|
dnsmasq_start()
|
|
{
|
|
{
|
|
local cfg="$1"
|
|
local cfg="$1"
|
|
@@ -1056,6 +1079,10 @@ dnsmasq_start()
|
|
config_foreach filter_dnsmasq cname dhcp_cname_add "$cfg"
|
|
config_foreach filter_dnsmasq cname dhcp_cname_add "$cfg"
|
|
echo >> $CONFIGFILE_TMP
|
|
echo >> $CONFIGFILE_TMP
|
|
|
|
|
|
|
|
+ echo >> $CONFIGFILE_TMP
|
|
|
|
+ config_foreach filter_dnsmasq ipset dnsmasq_ipset_add "$cfg"
|
|
|
|
+ echo >> $CONFIGFILE_TMP
|
|
|
|
+
|
|
echo >> $CONFIGFILE_TMP
|
|
echo >> $CONFIGFILE_TMP
|
|
mv -f $CONFIGFILE_TMP $CONFIGFILE
|
|
mv -f $CONFIGFILE_TMP $CONFIGFILE
|
|
mv -f $HOSTFILE_TMP $HOSTFILE
|
|
mv -f $HOSTFILE_TMP $HOSTFILE
|