On 16.8.2016 13:38, BIND9 Bugs via RT wrote: > Hello Evan and others, > > attempt to port bind-dyndb-ldap to dyndb API shipped with BIND 9.11 uncovered > couple of nits in current dyndb code. > > I believe that it is worth fixing them before the final release: > > 1) Docs in the example driver were outdated. A patch is attached. > > 2) Function dns_dyndb_register_t register_func is given the text between {} in > dyndb section. > > Following snippet is causing problems: > dyndb "name" "library.so" { > custom_structure { > blah 1; > nah 2; > }; > }; > > When register_func is called, all inner curly braces are gone. > > This makes impossible to re-use map parsers from libraries. I peeked at the > isc_tokentype_btext handling in isc_lex_gettoken() but I'm sure what is the > right approach to fix this. > > Ideally, I would like to send the complete text into the plugin and let plugin > to deal with it (possibly by calling ISC parser with custom grammar definition). > > It is possible to escape all the curly braces using \{ \} but that is quite > ugly for any non-trivial structures. > > Would it be possible to convince the parser not to remove {} from the > isc_tokentype_btext? I just found third problem: 3) bind-dyndb-ldap is using header file errno2result.h from isc/unix, which is not installed by BIND's 'make install'. Would it be possible to add this header to the list of installed headers? I can see that the function in it has isc__ prefix. Would it be possible to make it public? Quick & dirty port of bind-dyndb-ldap to BIND 9.11 is available on: https://github.com/pspacek/bind-dyndb-ldap/tree/v11 It is not finished by any means. At least the configuration is awkward at the moment and I suspect that there are be some race conditions somewhere in event processing on plugin startup/reload/shutdown. I will look into these later this week. -- Petr Spacek @ Red Hat