[PATCH] dnsmasq: 'ipset' config sections

Hans Dedecker dedeckeh at gmail.com
Wed Nov 11 14:50:43 EST 2020


Hi,

On Mon, Nov 9, 2020 at 11:55 AM Aleksandr Mezin
<mezin.alexander at gmail.com> wrote:
>
> Is something wrong with this patch? Should I CC someone to get the
> patch reviewed? I'm unable to figure out who is the maintainer of
> dnsmasq package
Nothing wrong the patch as it looks fine; it just takes some time
before somebody finds time to review and test a patch.
I just applied the patch to master; thx

Hans
>
> On Fri, Oct 23, 2020 at 11:03 AM Aleksandr Mezin
> <mezin.alexander at gmail.com> wrote:
> >
> > 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>
> > ---
> >  .../services/dnsmasq/files/dnsmasq.init       | 27 +++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> >
> > diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
> > index 0fa3074f92..fff8f8f793 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
> > --
> > 2.29.0
> >
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list