Hello Jim,

On 15 Nov 2017, at 12:01, Jim McDonald wrote:

   I'm writing a PowerDNS module that obtains data from an external source, and this data is being received in text or wire format.  For example, obtaining a test SOA record from the module's lookup() returns:


    example.com.    3600    IN      SOA     ns1.example.com. hostmaster.example.com. 1 900 900 1800 60


in text format and


076578616d706c6503636f6d000006000100000e10003d036e7331076578616d706c6503636f6d000a686f73746d6173746572076578616d706c6503636f6d00000000010000038400000384000007080000003c


in wire format.  Is there some in-built way to translate either of these formats to a DNSResourceRecord so that it can be returned by the module's get()?

You can look at almost any backend (GSQLBackend::extractRecord comes to mind) to get the translation from text. The exception is tinydnsbackend - the tinydns data.cdb file holds wire format data. Look at the use of PacketReader and mastermake in TinyDNSBackend::get to see how that might be done, after decoding from hex, in your case. Note that the tinydns example expects slightly less preamble than your hex dump appears to have.

Kind regards,
--
Peter van Dijk
PowerDNS.COM BV - https://www.powerdns.com/
_______________________________________________
Pdns-dev mailing list
Pdns-dev@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-dev

Reply via email to