[Pdns-users] TXT record with embedded tab causes thread to die.
Ruben d'Arco
cyclops at prof-x.net
Tue Mar 27 18:35:58 UTC 2012
Hi Chris,
I've tried to reproduce your issue with the latest PDNS. Here's my record:
pdnstest=> select * from records where id=20172;
id | domain_id | name | type | content | ttl | prio | change_date | ordername | auth
-------+-----------+----------------+------+----------------------------------+------+------+-------------+-----------+------
20172 | 3 | text.wtest.com | TXT | "v=spf1 a mx ip4:127.0.0.1>?all" | 3600 | | | |
(1 row)
This is the result of my dig for that record:
$ dig -p 5300 @127.0.0.2 TXT text.wtest.com +short
"v=spf1 a mx ip4:127.0.0.1>?all"
Could you provide us with some more information about your postgresql database and the output of '\d+ records' ?
Kind regards,
Ruben
On Tue, Mar 27, 2012 at 11:09:29AM -0400, Christopher Pruden wrote:
> >> On Tue, Mar 27, 2012 at 09:43:27AM -0400, Christopher Pruden wrote:
> >>> Hi,
> >>>
> >>> I'm working on a PowerDNS setup, with the gpgsql backend, and think I'm running into ticket #356. I tried this with 3.0.1 initially, and now 3.1rc1 (static RPM for both).
> >>>
> >>> Initially, data was loaded by setting PowerDNS as a slave to a bind master, and using AXFR to get everything across. This seemed to work well, although I've found a few records that ended up in the DB that can't be retrieved. Specifically, it seems to be TXT records with an embedded tab (the greater than sign is the tab):
>
> I believe I've found the spot that is causing this issue. I haven't tested this patch, as I've run into trouble getting PowerDNS to compile on Cent, but I believe the below patch (against svn) would take care of it. I suspect there are other characters that should be handled in it as well though -- vertical tab, maybe \r, etc.
>
>
> Index: pdns/dnsparser.cc
> ===================================================================
> --- pdns/dnsparser.cc (revision 2538)
> +++ pdns/dnsparser.cc (working copy)
> @@ -393,6 +393,9 @@
> if(*i=='\n') { // XXX FIXME this should do a way better job!
> ret += "\\010";
> }
> + else if(*i=='\t') {
> + ret += "\\009";
> + }
> else if(*i=='"' || *i=='\\'){
> ret += '\\';
> ret += *i;
>
>
> _______________________________________________
> Pdns-users mailing list
> Pdns-users at mailman.powerdns.com
> http://mailman.powerdns.com/mailman/listinfo/pdns-users
More information about the Pdns-users
mailing list