This is a discussion on RE: SDB driver question about dns_sdb_putrr data - DNS ; I hate to "bump" my thread, but I needed to give it one last shot before I sink another 5-6 hours into investigation. Thanks for reading. -Robby -----Original Message----- From: firstname.lastname@example.org [mailto:email@example.com] On Behalf Of Robert Bryant Sent: Sunday, March ...
I hate to "bump" my thread, but I needed to give it one last shot before I
sink another 5-6 hours into investigation.
Thanks for reading.
From: firstname.lastname@example.org [mailto:email@example.com] On Behalf
Of Robert Bryant
Sent: Sunday, March 30, 2008 6:15 PM
Subject: SDB driver question about dns_sdb_putrr data
I am currently writing a BIND sdb driver on my Ubuntu machine. As a
simple first step, I created a nearly empty driver that only implements
lookup, and returns a hardcoded IP address every time. I then compiled,
installed, and ran my new named nameserver. I edited my
named.conf.local file to use my new database driver for "foo.com", and
edited my resolv.conf file to include 127.0.0.1 (I don't run
So, what happens when I run dig on foo.com? Well, it seems to correctly
resolve via my localhost nameserver, but I don't get any valid answers
(in fact, I get status: SERVFAIL in the response). The named process is
still running, however, so my driver didn't kill anything, it just
didn't return a correct A record via dns_sdb_putrr.
So, what should the data look like for a dns_sdb_putrr call? I
currently just pass "A", 3600, and a hardcoded IP address string
literal. Please advise as to what is correct. I have searched the
bind-users and bind9-users mail archives without any luck. A copy of my
minimal driver implementation follows. Thanks so much for your help.
static dns_sdbimplementation_t *opencdndb = NULL;
static isc_result_t opencdndb_lookup(const char *zone, const char *name,
void *dbdata, dns_sdblookup_t *lookup)
result = dns_sdb_putrr(lookup, "A", 3600, "22.214.171.124");
static dns_sdbmethods_t opencdndb_methods =
NULL, /* authority */
NULL, /* allnodes */
NULL, /* create */
NULL /* destroy */
unsigned int flags = 0;
return (dns_sdb_register("opencdn", &opencdndb_methods, NULL, flags,
if(opencdndb != NULL)