[svn] commit: r1172 - in /trunk/src/lib/auth: data_source_sqlite3.cc data_source_sqlite3_unittest.cc testdata/example.com.signed testdata/test.sqlite3
BIND 10 source code commits
bind10-changes at lists.isc.org
Sun Mar 7 02:43:19 UTC 2010
Author: jinmei
Date: Sun Mar 7 02:43:19 2010
New Revision: 1172
Log:
fixed a bug that Sqlite3 data source didn't return ANY queries
if the answer was generated from mixed ordered RRs.
Modified:
trunk/src/lib/auth/data_source_sqlite3.cc
trunk/src/lib/auth/data_source_sqlite3_unittest.cc
trunk/src/lib/auth/testdata/example.com.signed
trunk/src/lib/auth/testdata/test.sqlite3
Modified: trunk/src/lib/auth/data_source_sqlite3.cc
==============================================================================
--- trunk/src/lib/auth/data_source_sqlite3.cc (original)
+++ trunk/src/lib/auth/data_source_sqlite3.cc Sun Mar 7 02:43:19 2010
@@ -148,7 +148,6 @@
}
int rows = 0;
- RRsetPtr rrset;
const bool any = (rdtype == RRType::ANY());
rc = sqlite3_step(query);
@@ -186,7 +185,8 @@
}
}
- if (!target[rt]) {
+ RRsetPtr rrset = target[rt];
+ if (rrset == NULL) {
rrset = RRsetPtr(new RRset(name, RRClass::IN(), rt, RRTTL(ttl)));
target.addRRset(rrset);
}
Modified: trunk/src/lib/auth/data_source_sqlite3_unittest.cc
==============================================================================
--- trunk/src/lib/auth/data_source_sqlite3_unittest.cc (original)
+++ trunk/src/lib/auth/data_source_sqlite3_unittest.cc Sun Mar 7 02:43:19 2010
@@ -96,6 +96,11 @@
www_nsec_data.push_back("example.com. A RRSIG NSEC");
www_nsec_sig_data.push_back("NSEC 5 3 7200" + sigdata_common);
+
+ mix_a_data.push_back("192.0.2.1");
+ mix_a_data.push_back("192.0.2.2");
+ mix_aaaa_data.push_back("2001:db8::1");
+ mix_aaaa_data.push_back("2001:db8::2");
apex_soa_data.push_back("master.example.com. admin.example.com. "
"1234 3600 1800 2419200 7200");
@@ -165,6 +170,8 @@
vector<string> common_aaaa_sig_data;
vector<string> www_nsec_data;
vector<string> www_nsec_sig_data;
+ vector<string> mix_a_data;
+ vector<string> mix_aaaa_data;
vector<string> apex_soa_data;
vector<string> apex_soa_sig_data;
vector<string> apex_ns_data;
@@ -455,6 +462,24 @@
rrtype, ttls, 0, types, answers, signatures);
}
+TEST_F(Sqlite3DataSourceTest, findRRsetMixedANY) {
+ // ANY query for mixed order RRs
+ const Name qname("mix.example.com");
+
+ types.push_back(RRType::A());
+ types.push_back(RRType::AAAA());
+ ttls.push_back(rrttl);
+ ttls.push_back(rrttl);
+ answers.push_back(&mix_a_data);
+ answers.push_back(&mix_aaaa_data);
+ signatures.push_back(NULL);
+ signatures.push_back(NULL);
+
+ rrtype = RRType::ANY();
+ checkFind(NORMAL, data_source, *query, qname, &zone_name, rrclass,
+ rrtype, ttls, 0, types, answers, signatures);
+}
+
TEST_F(Sqlite3DataSourceTest, findRRsetApexNXRRSET) {
rrtype = RRType::AAAA();
EXPECT_EQ(DataSrc::SUCCESS,
Modified: trunk/src/lib/auth/testdata/example.com.signed
==============================================================================
--- trunk/src/lib/auth/testdata/example.com.signed (original)
+++ trunk/src/lib/auth/testdata/example.com.signed Sun Mar 7 02:43:19 2010
@@ -186,3 +186,9 @@
;; not an address
text.example.com. 3600 IN TXT "No address is here"
+
+;; mixed ordering
+mix.example.com. 3600 IN A 192.0.2.1
+ 3600 IN AAAA 2001:db8::1
+ 3600 IN A 192.0.2.2
+ 3600 IN AAAA 2001:db8::2
Modified: trunk/src/lib/auth/testdata/test.sqlite3
==============================================================================
Binary files - no diff available.
More information about the bind10-changes
mailing list