Your fix looks perfect for the interim, many thanks!
On Thu, Mar 01, 2007 at 10:42:56AM +0100, Andreas Henriksson wrote:
> On Thu, Mar 01, 2007 at 12:29:48AM +0100, bert hubert wrote:
> > I fail to reproduce the bug. PowerDNS does misparse the ( record, which is
> > sad, and fixed in SVN (the fix is intrusive and should not be backported
> > probably).
>
> I guess you've found that pdns expects opening ( for multiline records
> to not have anything after it.
>
> ie.
> foo TXT ( "lala"
> "baba"
> )
>
> will throw away "lala" and only return "baba".
> I don't think this is a big enough deal to warrant a change now that debian
> is frozen since a long time.
>
> >
> > But although we misparse the record, I don't see the other behaviour your
> > mention.
>
> The original mail in the bug report talked about a different kind of
> record, not present in the example zone JvW sent.
>
> ie.
> foo TXT "lala(foobar)baba"
>
> pdns/backends/bind/zoneparser2.cc - eatLine() seems to not respect that
> the " is first, and wrongly assumes that any line which contains a ( is
> a multiline record, which screws up the parsing of the rest of the
> zone....
>
> >
> > Can you give me a step-by-step so I can see your problem? I already loaded
> > your zone, and added several braces to them, and reloaded etc.
> >
>
> I've attached an updated version of the example zone which contains a
> "foo.a-eskwadraat.nl" record...
>
> $ host -t txt foo.a-eskwadraat.nl localhost
> Using domain server:
> Name: localhost
> Address: 127.0.0.1#53
> Aliases:
>
> foo.a-eskwadraat.nl descriptive text "lala\010@ txt ( \"study
> association a-eskwadraat\" \"princetonplein 5\" \"nl-3584 cc utrecht\"
> \"+31-30-253-4499"
>
>
> > My debian contains 'pdns-2.9.20-7+b1'.
> >
> > Thanks. If you get the description in to me today (UTC+2), I'll promise to
> > look into it Friday.
>
> Something like this might be whats needed.... Would be awesome if you
> could verify if it's correct.
>
>
> diff -uriNp pdns-2.9.20/pdns/backends/bind/zoneparser2.cc
> pdns-2.9.20-noparensintxt/pdns/backends/bind/zoneparser2.cc
> --- pdns-2.9.20/pdns/backends/bind/zoneparser2.cc 2006-03-15
> 19:29:38.000000000 +0100
> +++ pdns-2.9.20-noparensintxt/pdns/backends/bind/zoneparser2.cc
> 2007-03-01 10:46:29.000000000 +0100
> @@ -201,10 +201,12 @@ bool ZoneParser::eatLine(const string& l
> static string tline;
> static string lastfirstword;
> string::size_type pos=string::npos;
> + string::size_type contentpos=string::npos;
>
> if(tline.empty()) {
> + contentpos=line.find_first_of("\"");
> pos=line.find_first_of("(");
> - if(pos!=string::npos) { // this is a line that continues
> + if((pos!=string::npos) && ((contentpos==string::npos) ||
> (contentpos>pos))) { // this is a line that continues
> tline=line.substr(0,pos);
> return false;
> }
>
> --
> Regards,
> Andreas Henriksson
>
>
> !DSPAM:45e6a1f3174501188220721!
> ; $Id: db.nl.a-eskwadraat 2753 2007-01-18 14:32:37Z root $
> ; Zone file for A-Eskwadraat.nl
> ;
> ; rewrite door jeroen, 2 april 2002
>
> $TTL 1D
> @ IN SOA ns.A-Eskwadraat.nl. sysop.A-Eskwadraat.nl. (
> 2007011301 ; serial
> 6H ; refresh, seconds
> 1H ; retry, seconds
> 4W ; expire, seconds
> 1D ) ; minimum, seconds
>
> ;
> ; rewrite door jeroen, 2 april 2002
>
> foo TXT "lala(bar)baba"
>
> @ TXT (
> "Study Association A-Eskwadraat"
> "Princetonplein 5"
> "NL-3584 CC Utrecht"
> "+31-30-253-4499"
> )
>
> LOC 52 5 14 N 5 9 56 E 50m 10m 30m 50m
>
> ; de primary nameserver
> NS ns
>
> ; de primary mail exchanger
> MX 10 mail
> ; en de vaste backup
> MX 20 mail.wolffelaar.nl.
>
> ; NS en MX records MOETEN naar een A wijzen (dus geen CNAME)
> ns A 131.211.39.72
> mail A 131.211.39.72
>
> ; VPN stuff
> vpn-tunnel A 131.211.39.77
> vpns CNAME @
> vpn CNAME @
>
> ; Aliassen voor sevices die over VPN moeten
> ftp CNAME vpn-tunnel
> imap CNAME vpn-tunnel
> pop3 CNAME vpn-tunnel
> home CNAME vpn-tunnel
> homes CNAME vpn-tunnel
> homedirs CNAME vpn-tunnel
>
> ; @ heeft al records, kan dus geen CNAME zijn.
> @ A 1.2.3.4
>
> ; *.a-eskwadraat.nl verwijst nu naar square
> * CNAME @
>
> ; Voor DOMjudge/escapade:
> ;judge 15 CNAME madeleine.students.cs.uu.nl.
>
> ; Erik en Judith
> erik A 83.83.35.241
>
> ; Kerberos
> _kerberos TXT "A-ESKWADRAAT.NL"
> _kerberos._udp SRV 0 0 88 euclides.localdomain.
> _kerberos._tcp SRV 0 0 88 euclides.localdomain.
>
> ; backup NS:
> @ NS ns1.xel.nl.
> NS ns3.xel.nl.
> diff -uriNp pdns-2.9.20/pdns/backends/bind/zoneparser2.cc
> pdns-2.9.20-noparensintxt/pdns/backends/bind/zoneparser2.cc
> --- pdns-2.9.20/pdns/backends/bind/zoneparser2.cc 2006-03-15
> 19:29:38.000000000 +0100
> +++ pdns-2.9.20-noparensintxt/pdns/backends/bind/zoneparser2.cc
> 2007-03-01 10:46:29.000000000 +0100
> @@ -201,10 +201,12 @@ bool ZoneParser::eatLine(const string& l
> static string tline;
> static string lastfirstword;
> string::size_type pos=string::npos;
> + string::size_type contentpos=string::npos;
>
> if(tline.empty()) {
> + contentpos=line.find_first_of("\"");
> pos=line.find_first_of("(");
> - if(pos!=string::npos) { // this is a line that continues
> + if((pos!=string::npos) && ((contentpos==string::npos) ||
> (contentpos>pos))) { // this is a line that continues
> tline=line.substr(0,pos);
> return false;
> }
--
http://www.PowerDNS.com Open source, database driven DNS Software
http://netherlabs.nl Open and Closed source services
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]