Kea 1.5.0
cfg_db_access.cc
Go to the documentation of this file.
1// Copyright (C) 2016-2018 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#include <config.h>
9#include <dhcpsrv/db_type.h>
11#include <dhcpsrv/host_mgr.h>
13#include <boost/algorithm/string.hpp>
14#include <boost/foreach.hpp>
15#include <boost/lexical_cast.hpp>
16#include <sstream>
17#include <vector>
18
19using namespace isc::data;
20
21namespace isc {
22namespace dhcp {
23
25 : appended_parameters_(), lease_db_access_("type=memfile"),
26 host_db_access_() {
27}
28
29std::string
32}
33
34
35std::string
37 if (host_db_access_.empty()) {
38 return ("");
39 } else {
40 return (getAccessString(host_db_access_.front()));
41 }
42}
43
44std::list<std::string>
46 std::list<std::string> ret;
47 for (const std::string& dbaccess : host_db_access_) {
48 if (!dbaccess.empty()) {
49 ret.push_back(getAccessString(dbaccess));
50 }
51 }
52 return (ret);
53}
54
55void
57 // Recreate lease manager.
60
61 // Recreate host data source.
63 std::list<std::string> host_db_access_list = getHostDbAccessStringList();
64 for (std::string& hds : host_db_access_list) {
66 }
67
68 // Check for a host cache.
70}
71
72std::string
73CfgDbAccess::getAccessString(const std::string& access_string) const {
74 std::ostringstream s;
75 s << access_string;
76 // Only append additional parameters if any parameters are specified
77 // in a configuration. For host database, no parameters mean that
78 // database access is disabled and thus we don't want to append any
79 // parameters.
80 if ((s.tellp() != std::streampos(0)) && (!appended_parameters_.empty())) {
81 s << " " << appended_parameters_;
82 }
83
84 return (s.str());
85}
86
87} // end of isc::dhcp namespace
88} // end of isc namespace
std::string getAccessString(const std::string &access_string) const
Returns lease or host database access string.
void createManagers() const
Creates instance of lease manager and host data sources according to the configuration specified.
std::string getHostDbAccessString() const
Retrieves host database access string.
std::list< std::string > host_db_access_
Holds host database access strings.
Definition: cfg_db_access.h:96
std::string appended_parameters_
Parameters to be appended to the database access strings.
Definition: cfg_db_access.h:90
CfgDbAccess()
Constructor.
std::list< std::string > getHostDbAccessStringList() const
Retrieves host database access string.
std::string lease_db_access_
Holds lease database access string.
Definition: cfg_db_access.h:93
std::string getLeaseDbAccessString() const
Retrieves lease database access string.
static void create()
Creates new instance of the HostMgr.
Definition: host_mgr.cc:40
static void addBackend(const std::string &access)
Add an alternate host backend (aka host data source).
Definition: host_mgr.cc:45
static bool checkCacheBackend(bool logging=false)
Check for the cache host backend.
Definition: host_mgr.cc:68
static void create(const std::string &dbaccess)
Create an instance of a lease manager.
static void destroy()
Destroy lease manager.
Defines the logger used by the top-level component of kea-dhcp-ddns.