|
@@ -46,6 +46,7 @@
|
|
|
#include <datasrc/memory_datasrc.h>
|
|
|
#include <datasrc/static_datasrc.h>
|
|
|
#include <datasrc/sqlite3_datasrc.h>
|
|
|
+#include <datasrc/client_list.h>
|
|
|
|
|
|
#include <xfr/xfrout_client.h>
|
|
|
|
|
@@ -266,6 +267,9 @@ public:
|
|
|
/// The TSIG keyring
|
|
|
const boost::shared_ptr<TSIGKeyRing>* keyring_;
|
|
|
|
|
|
+ /// The client list
|
|
|
+ boost::shared_ptr<ClientList> client_list_;
|
|
|
+
|
|
|
/// Bind the ModuleSpec object in config_session_ with
|
|
|
/// isc:config::ModuleSpec::validateStatistics.
|
|
|
void registerStatisticsValidator();
|
|
@@ -331,6 +335,9 @@ AuthSrvImpl::AuthSrvImpl(const bool use_cache,
|
|
|
|
|
|
// enable or disable the cache
|
|
|
cache_.setEnabled(use_cache);
|
|
|
+
|
|
|
+ // Create the (yet empty) data source list
|
|
|
+ client_list_.reset(new ConfigurableClientList());
|
|
|
}
|
|
|
|
|
|
AuthSrvImpl::~AuthSrvImpl() {
|
|
@@ -1024,3 +1031,16 @@ void
|
|
|
AuthSrv::setTSIGKeyRing(const boost::shared_ptr<TSIGKeyRing>* keyring) {
|
|
|
impl_->keyring_ = keyring;
|
|
|
}
|
|
|
+
|
|
|
+void
|
|
|
+AuthSrv::setClientList(const boost::shared_ptr<ClientList>& list) {
|
|
|
+ if (!list) {
|
|
|
+ isc_throw(BadValue, "The client list must not be NULL");
|
|
|
+ }
|
|
|
+ impl_->client_list_ = list;
|
|
|
+}
|
|
|
+
|
|
|
+const ClientList&
|
|
|
+AuthSrv::getClientList() const {
|
|
|
+ return (*impl_->client_list_);
|
|
|
+}
|