[prev in list] [next in list] [prev in thread] [next in thread]
List: pdns-dev
Subject: [Pdns-dev] [opendbx] Bugfix + Feature
From: Norbert Sendetzky <norbert () linuxnetworks ! de>
Date: 2006-01-29 0:40:04
Message-ID: 200601290140.05021.norbert () linuxnetworks ! de
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/mixed)]
Hi Bert
Could you please include this diff before releasing 2.9.20?
It contains a bugfix for the slaveinfo/masterinfo code and implements SOA
autoserials in getDomainInfo().
Thanks
Norbert
--
OpenPGP public key
http://www.linuxnetworks.de/norbert.pubkey.asc
["opendbxbackend_2006-01-28.diff" (text/x-diff)]
--- pdns-svn/modules/opendbxbackend/odbxbackend.hh 2006-01-28 21:33:21.976131736 \
+0100
+++ pdns-svn.new/modules/opendbxbackend/odbxbackend.hh 2006-01-28 20:56:07.000000000 \
+0100 @@ -121,7 +121,7 @@
declare( suffix, "sql-lookuptypeid", "Lookup query with type and id","SELECT \
domain_id, name, type, ttl, prio, content FROM records WHERE domain_id=':id' AND \
name=':name' AND type=':type'" );
declare( suffix, "sql-zonedelete","Delete all records for this zone","DELETE FROM \
records WHERE domain_id=':id'" );
- declare( suffix, "sql-zoneinfo","Get domain info","SELECT d.id, d.name, d.type, \
d.master, d.last_check, r.content FROM domains AS d LEFT JOIN records AS r ON \
d.id=r.domain_id WHERE ( d.name=':name' AND r.type='SOA' ) OR ( d.name=':name' AND \
r.domain_id IS NULL )" ); + declare( suffix, "sql-zoneinfo","Get domain \
info","SELECT d.id, d.name, d.type, d.master, d.last_check, r.content, r.change_date \
FROM domains AS d LEFT JOIN records AS r ON d.id=r.domain_id WHERE ( d.name=':name' \
AND r.type='SOA' ) OR ( d.name=':name' AND r.domain_id IS NULL )" );
declare( suffix, "sql-transactbegin", "Start transaction", "BEGIN" );
declare( suffix, "sql-transactend", "Finish transaction", "COMMIT" );
@@ -136,8 +136,8 @@
declare( suffix, "sql-master", "Get master record for zone", "SELECT master FROM \
domains WHERE name=':name' AND type='SLAVE'" ); declare( suffix, \
"sql-supermaster","Get supermaster info", "SELECT account FROM supermasters WHERE \
ip=':ip' AND nameserver=':ns'" );
- declare( suffix, "sql-infoslaves", "Get all unfresh slaves", "SELECT d.id, d.name, \
d.master, d.notified_serial, d.last_check, r.change_date, r.content FROM domains AS d \
LEFT JOIN records AS r ON d.id=r.domain_id WHERE ( d.type='SLAVE' AND r.type='SOA' ) \
OR ( d.type='SLAVE' AND r.domain_id IS NULL )" );
- declare( suffix, "sql-infomasters", "Get all updated masters", "SELECT d.id, \
d.name, d.master, d.notified_serial, d.last_check, r.change_date, r.content FROM \
domains AS d, records AS r WHERE d.type='MASTER' AND d.id=r.domain_id AND \
r.type='SOA'" ); + declare( suffix, "sql-infoslaves", "Get all unfresh slaves", \
"SELECT d.id, d.name, d.master, d.notified_serial, d.last_check, r.content, \
r.change_date FROM domains AS d LEFT JOIN records AS r ON d.id=r.domain_id WHERE ( \
d.type='SLAVE' AND r.type='SOA' ) OR ( d.type='SLAVE' AND r.domain_id IS NULL )" ); \
+ declare( suffix, "sql-infomasters", "Get all updated masters", "SELECT d.id, \
d.name, d.master, d.notified_serial, d.last_check, r.content, r.change_date FROM \
domains AS d, records AS r WHERE d.type='MASTER' AND d.id=r.domain_id AND \
r.type='SOA'" ); }
--- pdns-svn/modules/opendbxbackend/odbxbackend.cc 2006-01-28 21:33:21.978131432 \
+0100
+++ pdns-svn.new/modules/opendbxbackend/odbxbackend.cc 2006-01-28 21:21:33.000000000 \
+0100 @@ -65,6 +65,7 @@
bool OdbxBackend::getDomainInfo( const string& domain, DomainInfo& di )
{
const char* tmp;
+ SOAData sd;
string stmt;
@@ -86,7 +87,7 @@
di.notified_serial = 0;
di.kind = DomainInfo::Native;
di.backend = this;
- di.serial = 0;
+ sd.serial = 0;
if( ( tmp = odbx_field_value( m_result, 0 ) ) != NULL )
{
@@ -115,19 +116,22 @@
di.master = string( tmp );
}
- if( ( tmp = odbx_field_value( m_result, 5 ) ) != NULL )
+ if( ( tmp = odbx_field_value( m_result, 4 ) ) != NULL )
{
di.last_check = strtol( tmp, NULL, 10 );
}
- if( ( tmp = odbx_field_value( m_result, 6 ) ) != NULL )
+ if( ( tmp = odbx_field_value( m_result, 5 ) ) != NULL )
{
- SOAData sd;
-
- sd.serial = 0;
- DNSPacket::fillSOAData( string( tmp ), sd );
- di.serial = sd.serial;
+ DNSPacket::fillSOAData( string( tmp ), sd );
+ }
+
+ if( !sd.serial && ( tmp = odbx_field_value( m_result, 6 ) ) != NULL )
+ {
+ sd.serial = strtol( tmp, NULL, 10 );
}
+
+ di.serial = sd.serial;
}
while( getRecord() );
}
--- pdns-svn/modules/opendbxbackend/odbxprivate.cc 2006-01-28 21:33:21.981130976 \
+0100
+++ pdns-svn.new/modules/opendbxbackend/odbxprivate.cc 2006-01-28 21:22:12.000000000 \
+0100 @@ -126,12 +126,12 @@
sd.serial = 0;
sd.refresh = 0;
- if( ( tmp = odbx_field_value( m_result, 6 ) ) != NULL )
+ if( ( tmp = odbx_field_value( m_result, 5 ) ) != NULL )
{
DNSPacket::fillSOAData( string( tmp ), sd );
}
- if( !sd.serial && ( tmp = odbx_field_value( m_result, 5 ) ) != NULL )
+ if( !sd.serial && ( tmp = odbx_field_value( m_result, 6 ) ) != NULL )
{
sd.serial = strtol( tmp, NULL, 10 );
}
[Attachment #8 (application/pgp-signature)]
_______________________________________________
Pdns-dev mailing list
Pdns-dev@mailman.powerdns.com
http://mailman.powerdns.com/mailman/listinfo/pdns-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic