[nsd-users] NSD 4.2.3 released (changed behavior)

Greg Bock greg.bock at stackpath.com
Mon Nov 25 19:57:07 UTC 2019


>         Am 20.11.19 um 08:17 schrieb Wouter Wijngaards:
>         > The confine-to-zone: yesno option from Greg Bock, if enabled stops NSD
>         > from responding with data outside of the zone the query was aimed at.
>         > Answers contain data that comes from one zone only.
>         
>         Hello,
>         
>         maybe this feature break "minimal-responses: yes"
>         
>         dig @nsd-4.2.2 www.example. A 
>          -> give only an answer section
>         
>         dig @nsd-4.2.3 www.example. A 
>           -> give an answer AND additional section
>         
>         Andreas 
> 
> Sorry for the top post earlier. 
> 
> > I just tried every combination of both options as well as defaults at commit
> > 8fd09a59ea50db1daab352b5bce67b66bf533eb6 (where my change was introduced) and
> > was unable to reproduce this. I can reproduce this at tag NSD_4_2_3_REL
> > regardless of either setting. If I find time I'll try to bisect the changes
> > between mine and NSD_4_2_3_REL to find the culprit but at a glance this
> > appears to have been introduced after my changes.
> 
> Bisecting shows this commit to be the culprit:
> 
> commit 565630575ff0f13144c680d4f216e3d4c673124b
> Author: Jeroen Koekkoek <jeroen at nlnetlabs.nl>
> Date:   Wed Jun 12 08:41:23 2019 +0200
> 
>     Make configuration parser context aware
>

It appears minimal_responses and round_robin vars should be set:

diff --git a/configparser.y b/configparser.y
index 118f43a..d49eeba 100644
--- a/configparser.y
+++ b/configparser.y
@@ -374,9 +374,16 @@ server_option:
   | VAR_LOG_TIME_ASCII boolean
     { cfg_parser->opt->log_time_ascii = $2; }
   | VAR_ROUND_ROBIN boolean
-    { cfg_parser->opt->round_robin = $2; }
+    {
+       cfg_parser->opt->round_robin = $2;
+       round_robin = cfg_parser->opt->round_robin;
+    }
   | VAR_MINIMAL_RESPONSES boolean
-    { cfg_parser->opt->minimal_responses = $2; }
+    {
+       cfg_parser->opt->minimal_responses = $2;
+       minimal_responses = cfg_parser->opt->minimal_responses;
+    }
+    
   | VAR_CONFINE_TO_ZONE boolean
     { cfg_parser->opt->confine_to_zone = $2; }
   | VAR_REFUSE_ANY Boolean

I'm not that familiar with the configuration parser and only took a cursory glance, other things might also not be working as expected. 





More information about the nsd-users mailing list