Browse Source

[2204] changed internal representation of auth_srv's "client_lists_" to ptrs.

this will be necessary later in this branch.
also renamed the member variable "datasrc_client_lists_" as the mere "client"
can be ambiguous.
JINMEI Tatuya 12 years ago
parent
commit
a0a5e207d4
1 changed files with 24 additions and 20 deletions
  1. 24 20
      src/bin/auth/auth_srv.cc

+ 24 - 20
src/bin/auth/auth_srv.cc

@@ -69,6 +69,8 @@
 
 using namespace std;
 
+using boost::shared_ptr;
+
 using namespace isc;
 using namespace isc::cc;
 using namespace isc::datasrc;
@@ -264,23 +266,21 @@ public:
     AddressList listen_addresses_;
 
     /// The TSIG keyring
-    const boost::shared_ptr<TSIGKeyRing>* keyring_;
+    const shared_ptr<TSIGKeyRing>* keyring_;
 
-    /// The client list
-    std::map<RRClass, boost::shared_ptr<ConfigurableClientList> >
-        client_lists_;
+    /// The data source client list
+    shared_ptr<std::map<RRClass, shared_ptr<ConfigurableClientList> > >
+        datasrc_client_lists_;
 
-    boost::shared_ptr<ConfigurableClientList> getClientList(const RRClass&
-                                                            rrclass)
-    {
+    shared_ptr<ConfigurableClientList> getClientList(const RRClass& rrclass) {
         // TODO: Debug-build only check
         if (!mutex_.locked()) {
             isc_throw(isc::Unexpected, "Not locked!");
         }
-        const std::map<RRClass, boost::shared_ptr<ConfigurableClientList> >::
-            const_iterator it(client_lists_.find(rrclass));
-        if (it == client_lists_.end()) {
-            return (boost::shared_ptr<ConfigurableClientList>());
+        const std::map<RRClass, shared_ptr<ConfigurableClientList> >::
+            const_iterator it(datasrc_client_lists_->find(rrclass));
+        if (it == datasrc_client_lists_->end()) {
+            return (shared_ptr<ConfigurableClientList>());
         } else {
             return (it->second);
         }
@@ -335,6 +335,8 @@ AuthSrvImpl::AuthSrvImpl(AbstractXfroutClient& xfrout_client,
     xfrin_session_(NULL),
     counters_(),
     keyring_(NULL),
+    datasrc_client_lists_(new std::map<RRClass,
+                          shared_ptr<ConfigurableClientList> >()),
     ddns_base_forwarder_(ddns_forwarder),
     ddns_forwarder_(NULL),
     xfrout_connected_(false),
@@ -650,7 +652,7 @@ AuthSrvImpl::processNormalQuery(const IOMessage& io_message, Message& message,
 
     try {
         const ConstQuestionPtr question = *message.beginQuestion();
-        const boost::shared_ptr<datasrc::ClientList>
+        const shared_ptr<datasrc::ClientList>
             list(getClientList(question->getClass()));
         if (list) {
             const RRType& qtype = question->getType();
@@ -911,7 +913,7 @@ AuthSrv::setDNSService(isc::asiodns::DNSServiceBase& dnss) {
 }
 
 void
-AuthSrv::setTSIGKeyRing(const boost::shared_ptr<TSIGKeyRing>* keyring) {
+AuthSrv::setTSIGKeyRing(const shared_ptr<TSIGKeyRing>* keyring) {
     impl_->keyring_ = keyring;
 }
 
@@ -932,19 +934,21 @@ AuthSrv::destroyDDNSForwarder() {
 
 void
 AuthSrv::setClientList(const RRClass& rrclass,
-                       const boost::shared_ptr<ConfigurableClientList>& list) {
+                       const shared_ptr<ConfigurableClientList>& list)
+{
     // TODO: Debug-build only check
     if (!impl_->mutex_.locked()) {
         isc_throw(isc::Unexpected, "Not locked");
     }
 
     if (list) {
-        impl_->client_lists_[rrclass] = list;
+        (*impl_->datasrc_client_lists_)[rrclass] = list;
     } else {
-        impl_->client_lists_.erase(rrclass);
+        impl_->datasrc_client_lists_->erase(rrclass);
     }
 }
-boost::shared_ptr<ConfigurableClientList>
+
+shared_ptr<ConfigurableClientList>
 AuthSrv::getClientList(const RRClass& rrclass) {
     return (impl_->getClientList(rrclass));
 }
@@ -957,9 +961,9 @@ AuthSrv::getClientListClasses() const {
     }
 
     vector<RRClass> result;
-    for (std::map<RRClass, boost::shared_ptr<ConfigurableClientList> >::
-         const_iterator it(impl_->client_lists_.begin());
-         it != impl_->client_lists_.end(); ++it) {
+    for (std::map<RRClass, shared_ptr<ConfigurableClientList> >::
+             const_iterator it(impl_->datasrc_client_lists_->begin());
+         it != impl_->datasrc_client_lists_->end(); ++it) {
         result.push_back(it->first);
     }
     return (result);