[svn] commit: r3805 - in /branches/trac408/src/lib/nsas: address_request_callback.h tests/nameserver_address_store_unittest.cc tests/zone_entry_unittest.cc zone_entry.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Sat Dec 11 20:27:03 UTC 2010
Author: vorner
Date: Sat Dec 11 20:27:03 2010
New Revision: 3805
Log:
AddressRequestCallback provides NameserverAddress
So the one that gets it might use it to update the rtt.
Modified:
branches/trac408/src/lib/nsas/address_request_callback.h
branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc
branches/trac408/src/lib/nsas/tests/zone_entry_unittest.cc
branches/trac408/src/lib/nsas/zone_entry.cc
Modified: branches/trac408/src/lib/nsas/address_request_callback.h
==============================================================================
--- branches/trac408/src/lib/nsas/address_request_callback.h (original)
+++ branches/trac408/src/lib/nsas/address_request_callback.h Sat Dec 11 20:27:03 2010
@@ -18,6 +18,7 @@
#define __ADDRESS_REQUEST_CALLBACK_H
#include "asiolink.h"
+#include "nameserver_address.h"
namespace isc {
namespace nsas {
@@ -55,7 +56,7 @@
/// This method is used when an address has been retrieved for the request.
///
/// \param address Address to be used to access the nameserver.
- virtual void success(const asiolink::IOAddress& address) = 0;
+ virtual void success(const NameserverAddress& address) = 0;
/// \brief Unreachable
///
Modified: branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc
==============================================================================
--- branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc (original)
+++ branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc Sat Dec 11 20:27:03 2010
@@ -155,14 +155,13 @@
class NSASCallback : public AddressRequestCallback {
public:
- typedef pair<bool, asiolink::IOAddress> Result;
+ typedef pair<bool, NameserverAddress> Result;
static vector<Result> results;
- virtual void success(const asiolink::IOAddress& address) {
+ virtual void success(const NameserverAddress& address) {
results.push_back(Result(true, address));
}
virtual void unreachable() {
- results.push_back(Result(false,
- asiolink::IOAddress("0.0.0.0")));
+ results.push_back(Result(false, NameserverAddress()));
}
};
@@ -266,7 +265,7 @@
EXPECT_EQ(3, NSASCallback::results.size());
BOOST_FOREACH(const NSASCallback::Result& result, NSASCallback::results) {
EXPECT_TRUE(result.first);
- EXPECT_EQ("192.0.2.1", result.second.toText());
+ EXPECT_EQ("192.0.2.1", result.second.getAddress().toText());
}
}
@@ -368,7 +367,8 @@
// That should trigger one answer
EXPECT_EQ(1, NSASCallback::results.size());
EXPECT_TRUE(NSASCallback::results[0].first);
- EXPECT_EQ("192.0.2.1", NSASCallback::results[0].second.toText());
+ EXPECT_EQ("192.0.2.1",
+ NSASCallback::results[0].second.getAddress().toText());
EXPECT_NO_THROW(resolver_->answer(3, name, RRType::AAAA(),
rdata::in::AAAA("2001:bd8::1")));
// And there should be yet another query
@@ -399,7 +399,7 @@
EXPECT_EQ(3, NSASCallback::results.size());
BOOST_FOREACH(const NSASCallback::Result& result, NSASCallback::results) {
EXPECT_TRUE(result.first);
- EXPECT_EQ("192.0.2.2", result.second.toText());
+ EXPECT_EQ("192.0.2.2", result.second.getAddress().toText());
}
}
Modified: branches/trac408/src/lib/nsas/tests/zone_entry_unittest.cc
==============================================================================
--- branches/trac408/src/lib/nsas/tests/zone_entry_unittest.cc (original)
+++ branches/trac408/src/lib/nsas/tests/zone_entry_unittest.cc Sat Dec 11 20:27:03 2010
@@ -77,9 +77,9 @@
struct Callback : public AddressRequestCallback {
Callback() : unreachable_count_(0) {}
size_t unreachable_count_;
- vector<IOAddress> successes_;
+ vector<NameserverAddress> successes_;
virtual void unreachable() { unreachable_count_ ++; }
- virtual void success(const IOAddress& address) {
+ virtual void success(const NameserverAddress& address) {
successes_.push_back(address);
}
};
@@ -163,8 +163,9 @@
EXPECT_EQ(success_count, callback_->successes_.size());
for (size_t i = 0; i < callback_->successes_.size(); ++ i) {
EXPECT_TRUE(IOAddress("192.0.2.1").equal(
- callback_->successes_[i]) || IOAddress("2001:db8::1").equal(
- callback_->successes_[i]));
+ callback_->successes_[i].getAddress()) ||
+ IOAddress("2001:db8::1").equal(
+ callback_->successes_[i].getAddress()));
}
}
};
@@ -230,7 +231,8 @@
EXPECT_NO_THROW(resolver_->answer(1, ns_name_, RRType::A(),
rdata::in::A("192.0.2.1")));
ASSERT_EQ(1, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[0]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[0].getAddress()));
EXPECT_NO_THROW(resolver_->answer(2, ns_name_, RRType::AAAA(),
rdata::in::AAAA("2001:db8::1")));
EXPECT_EQ(1, callback_->successes_.size());
@@ -252,7 +254,8 @@
EXPECT_NO_THROW(resolver_->answer(4, different_name, RRType::A(),
rdata::in::A("192.0.2.2")));
ASSERT_EQ(2, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.2").equal(callback_->successes_[1]));
+ EXPECT_TRUE(IOAddress("192.0.2.2").equal(
+ callback_->successes_[1].getAddress()));
// And now, switch back, as it timed out again
zone->addCallback(callback_, ANY_OK);
@@ -264,7 +267,8 @@
EXPECT_EQ(7, resolver_->requests.size());
EXPECT_EQ(Fetchable::READY, zone->getState());
ASSERT_EQ(3, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[0]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[0].getAddress()));
}
/**
@@ -299,8 +303,10 @@
rdata::in::A("192.0.2.1")));
// Two are answered (ANY and V4)
ASSERT_EQ(2, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[0]));
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[1]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[0].getAddress()));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[1].getAddress()));
// None are rejected
EXPECT_EQ(0, callback_->unreachable_count_);
// Answer the IPv6 one as well
@@ -309,14 +315,16 @@
// This should answer the third callback
EXPECT_EQ(0, callback_->unreachable_count_);
ASSERT_EQ(3, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("2001:db8::1").equal(callback_->successes_[2]));
+ EXPECT_TRUE(IOAddress("2001:db8::1").equal(
+ callback_->successes_[2].getAddress()));
// It should think it is ready
EXPECT_EQ(Fetchable::READY, zone->getState());
// When we ask something more, it should be answered right away
zone->addCallback(callback_, V4_ONLY);
EXPECT_EQ(3, resolver_->requests.size());
ASSERT_EQ(4, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[3]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[3].getAddress()));
EXPECT_EQ(0, callback_->unreachable_count_);
}
@@ -355,8 +363,10 @@
EXPECT_NO_THROW(resolver_->answer(1, ns_name_, RRType::A(),
rdata::in::A("192.0.2.1")));
ASSERT_EQ(2, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[0]));
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[1]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[0].getAddress()));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[1].getAddress()));
EXPECT_EQ(1, callback_->unreachable_count_);
// Everything arriwed, so we are ready
EXPECT_EQ(Fetchable::READY, zone->getState());
@@ -364,7 +374,8 @@
zone->addCallback(callback_, V4_ONLY);
EXPECT_EQ(3, resolver_->requests.size());
ASSERT_EQ(3, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[2]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[2].getAddress()));
EXPECT_EQ(1, callback_->unreachable_count_);
zone->addCallback(callback_, V6_ONLY);
@@ -425,8 +436,10 @@
// The other callbacks should be answered now
EXPECT_EQ(2, callback_->unreachable_count_);
ASSERT_EQ(2, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("2001:db8::1").equal(callback_->successes_[0]));
- EXPECT_TRUE(IOAddress("2001:db8::1").equal(callback_->successes_[1]));
+ EXPECT_TRUE(IOAddress("2001:db8::1").equal(
+ callback_->successes_[0].getAddress()));
+ EXPECT_TRUE(IOAddress("2001:db8::1").equal(
+ callback_->successes_[1].getAddress()));
}
/**
@@ -518,7 +531,8 @@
rdata::in::A("192.0.2.1"), 0));
// It answers, not rejects
ASSERT_EQ(1, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[0]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[0].getAddress()));
EXPECT_EQ(0, callback_->unreachable_count_);
// As well with IPv6
EXPECT_NO_THROW(resolver_->answer(2, ns_name_, RRType::AAAA(),
@@ -534,7 +548,8 @@
rdata::in::A("192.0.2.1"), 0));
EXPECT_EQ(0, callback_->unreachable_count_);
ASSERT_EQ(2, callback_->successes_.size());
- EXPECT_TRUE(IOAddress("192.0.2.1").equal(callback_->successes_[1]));
+ EXPECT_TRUE(IOAddress("192.0.2.1").equal(
+ callback_->successes_[1].getAddress()));
}
/**
Modified: branches/trac408/src/lib/nsas/zone_entry.cc
==============================================================================
--- branches/trac408/src/lib/nsas/zone_entry.cc (original)
+++ branches/trac408/src/lib/nsas/zone_entry.cc Sat Dec 11 20:27:03 2010
@@ -272,12 +272,12 @@
uniform_int<size_t>(0, count - 1))();
}
-asiolink::IOAddress
+const NameserverAddress&
chooseAddress(const NameserverEntry::AddressVector& addresses) {
// TODO Something little bit more inteligent than just picking random
// one
assert(!addresses.empty()); // Should not be called with empty list
- return (addresses[randIndex(addresses.size())].getAddress());
+ return (addresses[randIndex(addresses.size())]);
}
}
More information about the bind10-changes
mailing list