[svn] commit: r793 - in /branches/each-ds/src/lib/dns/cpp: name.h name_unittest.cc rdata/generic/rrsig_46.cc rdata/generic/soa_6.cc rdata_unittest.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Feb 10 23:27:05 UTC 2010
Author: each
Date: Wed Feb 10 23:27:05 2010
New Revision: 793
Log:
merge in recent changes from trunk
Modified:
branches/each-ds/src/lib/dns/cpp/name.h
branches/each-ds/src/lib/dns/cpp/name_unittest.cc
branches/each-ds/src/lib/dns/cpp/rdata/generic/rrsig_46.cc
branches/each-ds/src/lib/dns/cpp/rdata/generic/soa_6.cc
branches/each-ds/src/lib/dns/cpp/rdata_unittest.cc
Modified: branches/each-ds/src/lib/dns/cpp/name.h
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/name.h (original)
+++ branches/each-ds/src/lib/dns/cpp/name.h Wed Feb 10 23:27:05 2010
@@ -261,7 +261,11 @@
/// \param buffer A buffer storing the wire format data.
/// \param downcase Whether to convert upper case alphabets to lower case.
explicit Name(InputBuffer& buffer, bool downcase = false);
- //@}
+ ///
+ /// We use the default copy constructor intentionally.
+ //@}
+ /// We use the default copy assignment operator intentionally.
+ ///
///
/// \name Getter Methods
Modified: branches/each-ds/src/lib/dns/cpp/name_unittest.cc
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/name_unittest.cc (original)
+++ branches/each-ds/src/lib/dns/cpp/name_unittest.cc Wed Feb 10 23:27:05 2010
@@ -266,6 +266,36 @@
25).getLabelCount());
}
+TEST_F(NameTest, copyConstruct)
+{
+ Name copy(example_name);
+ EXPECT_EQ(copy, example_name);
+
+ // Check the copied data is valid even after the original is deleted
+ Name* copy2 = new Name(example_name);
+ Name copy3(*copy2);
+ delete copy2;
+ EXPECT_EQ(copy3, example_name);
+}
+
+TEST_F(NameTest, assignment)
+{
+ Name copy(".");
+ copy = example_name;
+ EXPECT_EQ(copy, example_name);
+
+ // Check if the copied data is valid even after the original is deleted
+ Name* copy2 = new Name(example_name);
+ Name copy3(".");
+ copy3 = *copy2;
+ delete copy2;
+ EXPECT_EQ(copy3, example_name);
+
+ // Self assignment
+ copy = copy;
+ EXPECT_EQ(copy, example_name);
+}
+
TEST_F(NameTest, toText)
{
// tests derived from BIND9
Modified: branches/each-ds/src/lib/dns/cpp/rdata/generic/rrsig_46.cc
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/rdata/generic/rrsig_46.cc (original)
+++ branches/each-ds/src/lib/dns/cpp/rdata/generic/rrsig_46.cc Wed Feb 10 23:27:05 2010
@@ -124,7 +124,7 @@
return (*this);
}
- RRSIGImpl* newimpl = new RRSIGImpl(*impl_);
+ RRSIGImpl* newimpl = new RRSIGImpl(*source.impl_);
delete impl_;
impl_ = newimpl;
Modified: branches/each-ds/src/lib/dns/cpp/rdata/generic/soa_6.cc
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/rdata/generic/soa_6.cc (original)
+++ branches/each-ds/src/lib/dns/cpp/rdata/generic/soa_6.cc Wed Feb 10 23:27:05 2010
@@ -39,10 +39,35 @@
buffer.readData(numdata_, sizeof(numdata_));
}
-SOA::SOA(const std::string& soastr) :
- mname_("."), rname_(".")
+SOA::SOA(const string& soastr) :
+ mname_("."), rname_(".") // quick hack workaround
{
- dns_throw(InvalidRdataText, "Not implemented yet");
+ istringstream iss(soastr);
+ string token;
+
+ iss >> token;
+ if (iss.bad() || iss.fail()) {
+ dns_throw(InvalidRdataText, "Invalid SOA MNAME");
+ }
+ mname_ = Name(token);
+ iss >> token;
+ if (iss.bad() || iss.fail()) {
+ dns_throw(InvalidRdataText, "Invalid SOA RNAME");
+ }
+ rname_ = Name(token);
+
+ uint32_t serial, refresh, retry, expire, minimum;
+ iss >> serial >> refresh >> retry >> expire >> minimum;
+ if (iss.rdstate() != ios::eofbit) {
+ dns_throw(InvalidRdataText, "Invalid SOA format");
+ }
+ OutputBuffer buffer(20);
+ buffer.writeUint32(serial);
+ buffer.writeUint32(refresh);
+ buffer.writeUint32(retry);
+ buffer.writeUint32(expire);
+ buffer.writeUint32(minimum);
+ memcpy(numdata_, buffer.getData(), buffer.getLength());
}
SOA::SOA(const Name& mname, const Name& rname, uint32_t serial,
Modified: branches/each-ds/src/lib/dns/cpp/rdata_unittest.cc
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/rdata_unittest.cc (original)
+++ branches/each-ds/src/lib/dns/cpp/rdata_unittest.cc Wed Feb 10 23:27:05 2010
@@ -330,7 +330,11 @@
TEST_F(RdataTest, createFromText_SOA)
{
- //TBD
+ EXPECT_EQ(0, rdata_soa.compare(generic::SOA("ns.example.com. "
+ "root.example.com. "
+ "2010012601 3600 300 3600000 "
+ "1200")));
+ // TBD: more tests
}
TEST_F(RdataTest, createFromWire_SOA)
More information about the bind10-changes
mailing list