[Pdns-users] pdns-server, DNS-SD and \032 in record labels

Andy Smith andy at strugglers.net
Fri Mar 18 21:33:39 UTC 2011


One if my users tried to set up some DNS-SD[1] records in one of his
zones today. He's running BIND, so he put something like this in his
zone file:

foo\032wiki._http._tcp SRV 0 0 80 bar.example.com.

One of my BIND servers took a zone transfer of this, and the records
appear correctly in the slave zone file.

My PowerDNS servers however are not storing it correctly. I'm using
the gsqlite backend, and at first I suspected that because I've had
escaping issues before, but now I don't think the problem lies

The records in sqlite look like this:

sqlite> select * from records where domain_id=419 and type="SRV";
529053|419|foo wiki._http._tcp.example.com|SRV|0 80 bar.example.com.|120|0|

I was expecting "foo\032wiki._http._tcp.example.com" or perhaps
"foo\ wiki._http._tcp.example.com".

Of course a query for the records with dig produces no match,
whereas the same query against the BIND server does return the SRV

Out of curiosity I hacked about with pdns/resolver.cc such that it
would store "\ " instead of " ". At this point a query for
foo\032wiki._http._tcp.example.com caused pdns to say:

Received a malformed qdomain from 2001:7b8:2ff:9c::2, 'foo wiki._http._tcp.example.com': sending servfail

So it seems to me that there are multiple places here that can't
handle "\032" in a query name or in a record label. Just changing
backend is not going to get this working for me, right?

I raised a bug here:


Any comments?


[1] http://www.dns-sd.org/

More information about the Pdns-users mailing list