Browse Source

[1976] Do the real initialization of the datasrc configurator

The type of lists had to be changed to the Configurable ones,
unfortunately. It doesn't work otherwise. Therefore, it may be possible
to fold the ClientList hierarchy, but I'm postponing that work.
Michal 'vorner' Vaner 13 years ago
parent
commit
6107757547
3 changed files with 18 additions and 14 deletions
  1. 9 9
      src/bin/auth/auth_srv.cc
  2. 4 4
      src/bin/auth/auth_srv.h
  3. 5 1
      src/bin/auth/main.cc

+ 9 - 9
src/bin/auth/auth_srv.cc

@@ -267,7 +267,7 @@ public:
     const boost::shared_ptr<TSIGKeyRing>* keyring_;
     const boost::shared_ptr<TSIGKeyRing>* keyring_;
 
 
     /// The client list
     /// The client list
-    map<RRClass, boost::shared_ptr<ClientList> > client_lists_;
+    map<RRClass, boost::shared_ptr<ConfigurableClientList> > client_lists_;
 
 
     /// Bind the ModuleSpec object in config_session_ with
     /// Bind the ModuleSpec object in config_session_ with
     /// isc:config::ModuleSpec::validateStatistics.
     /// isc:config::ModuleSpec::validateStatistics.
@@ -1030,7 +1030,7 @@ AuthSrv::setTSIGKeyRing(const boost::shared_ptr<TSIGKeyRing>* keyring) {
 
 
 void
 void
 AuthSrv::setClientList(const RRClass& rrclass,
 AuthSrv::setClientList(const RRClass& rrclass,
-                       const boost::shared_ptr<ClientList>& list) {
+                       const boost::shared_ptr<ConfigurableClientList>& list) {
     if (list) {
     if (list) {
         impl_->client_lists_[rrclass] = list;
         impl_->client_lists_[rrclass] = list;
     } else {
     } else {
@@ -1038,12 +1038,12 @@ AuthSrv::setClientList(const RRClass& rrclass,
     }
     }
 }
 }
 
 
-boost::shared_ptr<ClientList>
+boost::shared_ptr<ConfigurableClientList>
 AuthSrv::getClientList(const RRClass& rrclass) {
 AuthSrv::getClientList(const RRClass& rrclass) {
-    const map<RRClass, boost::shared_ptr<ClientList> >::const_iterator
-        it(impl_->client_lists_.find(rrclass));
+    const map<RRClass, boost::shared_ptr<ConfigurableClientList> >::
+        const_iterator it(impl_->client_lists_.find(rrclass));
     if (it == impl_->client_lists_.end()) {
     if (it == impl_->client_lists_.end()) {
-        return (boost::shared_ptr<ClientList>());
+        return (boost::shared_ptr<ConfigurableClientList>());
     } else {
     } else {
         return (it->second);
         return (it->second);
     }
     }
@@ -1052,9 +1052,9 @@ AuthSrv::getClientList(const RRClass& rrclass) {
 vector<RRClass>
 vector<RRClass>
 AuthSrv::getClientListClasses() const {
 AuthSrv::getClientListClasses() const {
     vector<RRClass> result;
     vector<RRClass> result;
-    for (map<RRClass, boost::shared_ptr<ClientList> >::const_iterator
-         it(impl_->client_lists_.begin()); it != impl_->client_lists_.end();
-         ++ it) {
+    for (map<RRClass, boost::shared_ptr<ConfigurableClientList> >::
+         const_iterator it(impl_->client_lists_.begin());
+         it != impl_->client_lists_.end(); ++it) {
         result.push_back(it->first);
         result.push_back(it->first);
     }
     }
     return (result);
     return (result);

+ 4 - 4
src/bin/auth/auth_srv.h

@@ -44,7 +44,7 @@ class BaseSocketSessionForwarder;
 }
 }
 namespace datasrc {
 namespace datasrc {
 class InMemoryClient;
 class InMemoryClient;
-class ClientList;
+class ConfigurableClientList;
 }
 }
 namespace xfr {
 namespace xfr {
 class AbstractXfroutClient;
 class AbstractXfroutClient;
@@ -428,15 +428,15 @@ public:
     /// \param rrclass The class to modify.
     /// \param rrclass The class to modify.
     /// \param list Shared pointer to the client list. If it is NULL,
     /// \param list Shared pointer to the client list. If it is NULL,
     ///     the list is removed instead.
     ///     the list is removed instead.
-    void setClientList(const isc::dns::RRClass& rrclass,
-                       const boost::shared_ptr<isc::datasrc::ClientList>&
+    void setClientList(const isc::dns::RRClass& rrclass, const
+                       boost::shared_ptr<isc::datasrc::ConfigurableClientList>&
                        list);
                        list);
 
 
     /// \brief Returns the currently used client list for the class.
     /// \brief Returns the currently used client list for the class.
     ///
     ///
     /// \param rrclass The class for which to get the list.
     /// \param rrclass The class for which to get the list.
     /// \return The list, or NULL if no list is set for the class.
     /// \return The list, or NULL if no list is set for the class.
-    boost::shared_ptr<isc::datasrc::ClientList>
+    boost::shared_ptr<isc::datasrc::ConfigurableClientList>
         getClientList(const isc::dns::RRClass& rrclass);
         getClientList(const isc::dns::RRClass& rrclass);
 
 
     /// \brief Returns a list of classes that have a client list.
     /// \brief Returns a list of classes that have a client list.

+ 5 - 1
src/bin/auth/main.cc

@@ -45,6 +45,7 @@
 #include <auth/command.h>
 #include <auth/command.h>
 #include <auth/auth_srv.h>
 #include <auth/auth_srv.h>
 #include <auth/auth_log.h>
 #include <auth/auth_log.h>
+#include <auth/datasrc_configurator.h>
 #include <asiodns/asiodns.h>
 #include <asiodns/asiodns.h>
 #include <asiolink/asiolink.h>
 #include <asiolink/asiolink.h>
 #include <log/logger_support.h>
 #include <log/logger_support.h>
@@ -204,6 +205,9 @@ main(int argc, char* argv[]) {
         isc::server_common::initKeyring(*config_session);
         isc::server_common::initKeyring(*config_session);
         auth_server->setTSIGKeyRing(&isc::server_common::keyring);
         auth_server->setTSIGKeyRing(&isc::server_common::keyring);
 
 
+        // Start the data source configuration
+        DataSourceConfigurator::init(config_session, auth_server);
+
         // Now start asynchronous read.
         // Now start asynchronous read.
         config_session->start();
         config_session->start();
         LOG_DEBUG(auth_logger, DBG_AUTH_START, AUTH_CONFIG_CHANNEL_STARTED);
         LOG_DEBUG(auth_logger, DBG_AUTH_START, AUTH_CONFIG_CHANNEL_STARTED);
@@ -211,7 +215,6 @@ main(int argc, char* argv[]) {
         // Successfully initialized.
         // Successfully initialized.
         LOG_INFO(auth_logger, AUTH_SERVER_STARTED);
         LOG_INFO(auth_logger, AUTH_SERVER_STARTED);
         io_service.run();
         io_service.run();
-
     } catch (const std::exception& ex) {
     } catch (const std::exception& ex) {
         LOG_FATAL(auth_logger, AUTH_SERVER_FAILED).arg(ex.what());
         LOG_FATAL(auth_logger, AUTH_SERVER_FAILED).arg(ex.what());
         ret = 1;
         ret = 1;
@@ -225,6 +228,7 @@ main(int argc, char* argv[]) {
         xfrin_session->disconnect();
         xfrin_session->disconnect();
     }
     }
 
 
+    DataSourceConfigurator::deinit();
     delete statistics_session;
     delete statistics_session;
     delete xfrin_session;
     delete xfrin_session;
     delete config_session;
     delete config_session;