Bugfix: missing line in message.c

Mark Andrews marka at isc.org
Wed Jun 1 22:23:27 UTC 2022


Thanks.

INDENT is being addressed.

Can you add an issue on https://gitlab.isc.org/ for the view name in dnstap?

Mark

> On 2 Jun 2022, at 07:26, Peter <pmc at citylink.dinoex.sub.org> wrote:
> 
> Hi,
> 
>  this is broken in 916 (and apparently 918 also).
> Consequentially, output from dnstap gets unreadable (invalid YAML)
> when using dynamic zone updates. 
> 
> ******************** PATCH ****************
> --- lib/dns/message.c.orig      2022-05-10 11:02:21.000000000 +0200
> +++ lib/dns/message.c   2022-05-30 04:02:40.568222000 +0200
> @@ -4296,6 +4296,7 @@
>                        INDENT(style);
>                        ADD_STRING(target, "QUESTION: ");
>                } else {
> +                       INDENT(style);
>                        ADD_STRING(target, "ZONE: ");
>                }
>                snprintf(buf, sizeof(buf), "%1u",
> ******************** PATCH ****************
> 
> And when You'ra at it:
> I would very much appreciate when we could get the *view name* into the
> dnstap output.
> 
> I am running my nameservers as
> * authoritative to the public,
> * authoritative for the LAN,
> * recursing for the LAN (for DNSSEC to work some useful DANE things),
> * authoritative as root slave,
> * recursing as root slave (for DNSSEC to get 'AD' instead of 'AA'),
> * plus a couple of in-between cases,
> all in a single process. :)
> 
> Obviousely that needs lots of views. I found dnstap to be the perfect
> and long desired solution for debugging and understanding what
> actually happens, to become even able to create more fancy setups.
> 
> But then the view name is needed in the messages. There is an option 
> 'dnstap-identity ( <quoted_string> | none | hostname );'
> and putting that into the views would be the natural solution - but
> that doesn't work, it gets rejected as a syntax error (for no reason
> obvious to me). I tried 918, it gets rejected there also.
> 
> So for now I hacked it with a simple approach (because I know my
> version anyway, I need only the identity of an instance and the view)
> and that works for now:
> -               dm->d.version.data = env->version.base;
> -               dm->d.version.len = env->version.length;
> +               dm->d.version.data = (uint8_t *)(view->name);
> +               dm->d.version.len = strlen(view->name);
> 
> But this is ugly as it computes strlen() on every call. I could do it
> nicer, but then I think the beforementioned option should be made
> working instead.
> 
> 
> -- PMc
> -- 
> Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from this list
> 
> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
> 
> 
> bind-users mailing list
> bind-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind-users

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742              INTERNET: marka at isc.org



More information about the bind-users mailing list