| Kea 3.0.2-git

d2_config.h
Go to the documentation of this file.
1// Copyright (C) 2013-2025 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#ifndef D2_CONFIG_H
8#define D2_CONFIG_H
9
10#include <asiolink/io_service.h>
11#include <cc/data.h>
12#include <cc/simple_parser.h>
13#include <cc/cfg_to_element.h>
14#include <cc/user_context.h>
15#include <d2srv/d2_tsig_key.h>
16#include <dhcpsrv/parsers/dhcp_parsers.h>
17#include <exceptions/exceptions.h>
18#include <process/d_cfg_mgr.h>
19
20#include <stdint.h>
21#include <string>
22
23 namespace isc {
24 namespace d2 {
25
133
136 class D2CfgError : public isc::Exception {
137 public:
138 D2CfgError(const char* file, size_t line, const char* what) :
139 isc::Exception(file, line, what) { }
140};
141
143 class D2Params {
144 public:
160 D2Params(const isc::asiolink::IOAddress& ip_address,
161 const size_t port,
162 const size_t dns_server_timeout,
163 const dhcp_ddns::NameChangeProtocol& ncr_protocol,
164 const dhcp_ddns::NameChangeFormat& ncr_format);
165
168 D2Params();
169
171 virtual ~D2Params();
172
174 const isc::asiolink::IOAddress& getIpAddress() const {
175 return (ip_address_);
176 }
177
179 size_t getPort() const {
180 return (port_);
181 }
182
184 size_t getDnsServerTimeout() const {
185 return (dns_server_timeout_);
186 }
187
189 const dhcp_ddns::NameChangeProtocol& getNcrProtocol() const {
190 return (ncr_protocol_);
191 }
192
194 const dhcp_ddns::NameChangeFormat& getNcrFormat() const {
195 return (ncr_format_);
196 }
197
205 std::string getConfigSummary() const;
206
208 bool operator == (const D2Params& other) const;
209
211 bool operator != (const D2Params& other) const;
212
214 std::string toText() const;
215
216 protected:
228 virtual void validateContents();
229
230 private:
232 isc::asiolink::IOAddress ip_address_;
233
235 size_t port_;
236
238 size_t dns_server_timeout_;
239
242 dhcp_ddns::NameChangeProtocol ncr_protocol_;
243
246 dhcp_ddns::NameChangeFormat ncr_format_;
247};
248
253std::ostream&
254 operator<<(std::ostream& os, const D2Params& config);
255
257 typedef boost::shared_ptr<D2Params> D2ParamsPtr;
258
266 class TSIGKeyInfo : public isc::data::UserContext, public isc::data::CfgToElement {
267 public:
270 static const char* HMAC_MD5_STR;
271 static const char* HMAC_SHA1_STR;
272 static const char* HMAC_SHA256_STR;
273 static const char* HMAC_SHA224_STR;
274 static const char* HMAC_SHA384_STR;
275 static const char* HMAC_SHA512_STR;
277
310 TSIGKeyInfo(const std::string& name, const std::string& algorithm,
311 const std::string& secret, std::string secret_file = "",
312 uint32_t digestbits = 0);
313
315 virtual ~TSIGKeyInfo();
316
320 const std::string getName() const {
321 return (name_);
322 }
323
327 const std::string getAlgorithm() const {
328 return (algorithm_);
329 }
330
334 uint32_t getDigestbits() const {
335 return (digestbits_);
336 }
337
341 const std::string getSecret() const {
342 return (secret_);
343 }
344
348 const std::string getSecretFile() const {
349 return (secret_file_);
350 }
351
356 const D2TsigKeyPtr& getTSIGKey() const {
357 return (tsig_key_);
358 }
359
373 static const dns::Name& stringToAlgorithmName(const std::string&
374 algorithm_id);
375
379 virtual isc::data::ElementPtr toElement() const;
380
381 private:
390 void remakeKey();
391
396 std::string name_;
397
399 std::string algorithm_;
400
402 std::string secret_;
403
405 std::string secret_file_;
406
409 uint32_t digestbits_;
410
412 D2TsigKeyPtr tsig_key_;
413};
414
416 typedef boost::shared_ptr<TSIGKeyInfo> TSIGKeyInfoPtr;
417
419 typedef std::map<std::string, TSIGKeyInfoPtr> TSIGKeyInfoMap;
420
422 typedef std::pair<std::string, TSIGKeyInfoPtr> TSIGKeyInfoMapPair;
423
425 typedef boost::shared_ptr<TSIGKeyInfoMap> TSIGKeyInfoMapPtr;
426
427
433 class DnsServerInfo : public isc::data::UserContext, public isc::data::CfgToElement {
434 public:
436 static const uint32_t STANDARD_DNS_PORT = 53;
437
454 DnsServerInfo(const std::string& hostname,
455 isc::asiolink::IOAddress ip_address,
456 uint32_t port = STANDARD_DNS_PORT,
457 bool enabled = true,
458 const TSIGKeyInfoPtr& tsig_key_info = TSIGKeyInfoPtr(),
459 bool inherited_key = true);
460
462 virtual ~DnsServerInfo();
463
467 const std::string getHostname() const {
468 return (hostname_);
469 }
470
474 uint32_t getPort() const {
475 return (port_);
476 }
477
481 const isc::asiolink::IOAddress& getIpAddress() const {
482 return (ip_address_);
483 }
484
489 bool isEnabled() const {
490 return (enabled_);
491 }
492
494 void enable() {
495 enabled_ = true;
496 }
497
499 void disable() {
500 enabled_ = false;
501 }
502
507 const std::string getKeyName() const;
508
513 const TSIGKeyInfoPtr& getTSIGKeyInfo() {
514 return (tsig_key_info_);
515 }
516
518 std::string toText() const;
519
523 virtual isc::data::ElementPtr toElement() const;
524
525 private:
528 std::string hostname_;
529
532 isc::asiolink::IOAddress ip_address_;
533
535 uint32_t port_;
536
539 bool enabled_;
540
543 TSIGKeyInfoPtr tsig_key_info_;
544
547 bool inherited_key_;
548};
549
550std::ostream&
551 operator<<(std::ostream& os, const DnsServerInfo& server);
552
554 typedef boost::shared_ptr<DnsServerInfo> DnsServerInfoPtr;
555
557 typedef std::vector<DnsServerInfoPtr> DnsServerInfoStorage;
558
560 typedef boost::shared_ptr<DnsServerInfoStorage> DnsServerInfoStoragePtr;
561
562
570 class DdnsDomain : public isc::data::UserContext, public isc::data::CfgToElement {
571 public:
577 DdnsDomain(const std::string& name, DnsServerInfoStoragePtr servers,
578 const std::string& key_name = "");
579
581 virtual ~DdnsDomain();
582
586 const std::string getName() const {
587 return (name_);
588 }
589
596 const std::string getKeyName() const {
597 return (key_name_);
598 }
599
603 const DnsServerInfoStoragePtr& getServers() {
604 return (servers_);
605 }
606
610 virtual isc::data::ElementPtr toElement() const;
611
612 private:
614 std::string name_;
615
617 DnsServerInfoStoragePtr servers_;
618
620 std::string key_name_;
621};
622
624 typedef boost::shared_ptr<DdnsDomain> DdnsDomainPtr;
625
627 typedef std::map<std::string, DdnsDomainPtr> DdnsDomainMap;
628
630 typedef std::pair<std::string, DdnsDomainPtr> DdnsDomainMapPair;
631
633 typedef boost::shared_ptr<DdnsDomainMap> DdnsDomainMapPtr;
634
646 class DdnsDomainListMgr : public isc::data::CfgToElement {
647 public:
649 static const char* wildcard_domain_name_;
650
654 DdnsDomainListMgr(const std::string& name);
655
657 virtual ~DdnsDomainListMgr ();
658
677 virtual bool matchDomain(const std::string& fqdn, DdnsDomainPtr& domain);
678
682 const std::string getName() const {
683 return (name_);
684 }
685
689 uint32_t size() const {
690 return (domains_->size());
691 }
692
697 const DdnsDomainPtr& getWildcardDomain() {
698 return (wildcard_domain_);
699 }
700
704 const DdnsDomainMapPtr &getDomains() {
705 return (domains_);
706 }
707
711 void setDomains(DdnsDomainMapPtr domains);
712
716 virtual isc::data::ElementPtr toElement() const;
717
718 private:
720 std::string name_;
721
723 DdnsDomainMapPtr domains_;
724
726 DdnsDomainPtr wildcard_domain_;
727};
728
730 typedef boost::shared_ptr<DdnsDomainListMgr> DdnsDomainListMgrPtr;
731
742 class DScalarContext : public process::ConfigBase {
743 public:
744
746 DScalarContext() {
747 };
748
750 virtual ~DScalarContext() {
751 }
752
756 virtual process::ConfigPtr clone() {
757 return (process::ConfigPtr(new DScalarContext(*this)));
758 }
759
763 virtual isc::data::ElementPtr toElement() const {
764 isc_throw(isc::NotImplemented, "DScalarContext::ElementPtr");
765 }
766
767 protected:
769 DScalarContext(const DScalarContext& rhs) : ConfigBase(rhs) {
770 }
771
772 private:
774 DScalarContext& operator=(const DScalarContext& rhs);
775};
776
778 typedef boost::shared_ptr<DScalarContext> DScalarContextPtr;
779
784 class TSIGKeyInfoParser : public data::SimpleParser {
785 public:
794 TSIGKeyInfoPtr parse(data::ConstElementPtr key_config);
795
796};
797
802 class TSIGKeyInfoListParser : public data::SimpleParser {
803 public:
816 TSIGKeyInfoMapPtr parse(data::ConstElementPtr key_list_config);
817};
818
823 class DnsServerInfoParser : public data::SimpleParser {
824 public:
841 DnsServerInfoPtr parse(data::ConstElementPtr server_config,
842 data::ConstElementPtr domain_config,
843 const TSIGKeyInfoMapPtr keys);
844};
845
851 class DnsServerInfoListParser : public data::SimpleParser {
852 public:
866 DnsServerInfoStoragePtr parse(data::ConstElementPtr server_list_config,
867 data::ConstElementPtr domain_config,
868 const TSIGKeyInfoMapPtr keys);
869};
870
875 class DdnsDomainParser : public data::SimpleParser {
876 public:
886 DdnsDomainPtr parse(data::ConstElementPtr domain_config,
887 const TSIGKeyInfoMapPtr keys);
888};
889
894 class DdnsDomainListParser : public data::SimpleParser {
895 public:
908 DdnsDomainMapPtr parse(data::ConstElementPtr domain_list_config,
909 const TSIGKeyInfoMapPtr keys);
910};
911
917 class DdnsDomainListMgrParser : public data::SimpleParser {
918 public:
930 DdnsDomainListMgrPtr parse(data::ConstElementPtr mgr_config,
931 const std::string& mgr_name,
932 const TSIGKeyInfoMapPtr keys);
933};
934
935} // end of isc::d2 namespace
936} // end of isc namespace
937
938#endif // D2_CONFIG_H
cfg_to_element.h
isc::Exception
This is a base class for exceptions thrown from the DNS library module.
Definition exceptions/exceptions.h:23
isc::Exception::Exception
Exception(const char *file, size_t line, const char *what)
Constructor for a given type for exceptions with file name and file line number.
Definition exceptions/exceptions.cc:17
isc::Exception::what
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Definition exceptions/exceptions.cc:32
isc::NotImplemented
A generic exception that is thrown when a function is not implemented.
Definition exceptions/exceptions.h:166
isc::asiolink::IOAddress
The IOAddress class represents an IP addresses (version agnostic).
Definition io_address.h:45
isc::d2::D2CfgError::D2CfgError
D2CfgError(const char *file, size_t line, const char *what)
Definition d2_config.h:138
isc::d2::D2Params
Acts as a storage vault for D2 global scalar parameters.
Definition d2_config.h:143
isc::d2::D2Params::getDnsServerTimeout
size_t getDnsServerTimeout() const
Return the DNS server timeout value.
Definition d2_config.h:184
isc::d2::D2Params::D2Params
D2Params()
Default constructor The default constructor creates an instance that has updates disabled.
Definition d2_config.cc:43
isc::d2::D2Params::getIpAddress
const isc::asiolink::IOAddress & getIpAddress() const
Return the IP address D2 listens on.
Definition d2_config.h:174
isc::d2::D2Params::operator!=
bool operator!=(const D2Params &other) const
Compares two D2Params's for inequality.
Definition d2_config.cc:95
isc::d2::D2Params::getNcrFormat
const dhcp_ddns::NameChangeFormat & getNcrFormat() const
Return the expected format of inbound requests (NCRs).
Definition d2_config.h:194
isc::d2::D2Params::getPort
size_t getPort() const
Return the TCP/UPD port D2 listens on.
Definition d2_config.h:179
isc::d2::D2Params::operator==
bool operator==(const D2Params &other) const
Compares two D2Params's for equality.
Definition d2_config.cc:86
isc::d2::D2Params::D2Params
D2Params(const isc::asiolink::IOAddress &ip_address, const size_t port, const size_t dns_server_timeout, const dhcp_ddns::NameChangeProtocol &ncr_protocol, const dhcp_ddns::NameChangeFormat &ncr_format)
Constructor.
Definition d2_config.cc:30
isc::d2::D2Params::~D2Params
virtual ~D2Params()
Destructor.
Definition d2_config.cc:51
isc::d2::D2Params::getNcrProtocol
const dhcp_ddns::NameChangeProtocol & getNcrProtocol() const
Return the socket protocol in use.
Definition d2_config.h:189
isc::d2::D2Params::getConfigSummary
std::string getConfigSummary() const
Return summary of the configuration used by D2.
Definition d2_config.cc:78
isc::d2::D2Params::toText
std::string toText() const
Generates a string representation of the class contents.
Definition d2_config.cc:100
isc::d2::D2Params::validateContents
virtual void validateContents()
Validates member values.
Definition d2_config.cc:54
isc::d2::DScalarContext
Storage container for scalar configuration parameters.
Definition d2_config.h:742
isc::d2::DScalarContext::DScalarContext
DScalarContext()
Constructor.
Definition d2_config.h:746
isc::d2::DScalarContext::toElement
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition d2_config.h:763
isc::d2::DScalarContext::clone
virtual process::ConfigPtr clone()
Creates a clone of a DStubContext.
Definition d2_config.h:756
isc::d2::DScalarContext::~DScalarContext
virtual ~DScalarContext()
Destructor.
Definition d2_config.h:750
isc::d2::DScalarContext::DScalarContext
DScalarContext(const DScalarContext &rhs)
Copy constructor.
Definition d2_config.h:769
isc::d2::DdnsDomainListMgrParser
Parser for DdnsDomainListMgr.
Definition d2_config.h:917
isc::d2::DdnsDomainListMgrParser::parse
DdnsDomainListMgrPtr parse(data::ConstElementPtr mgr_config, const std::string &mgr_name, const TSIGKeyInfoMapPtr keys)
Performs the actual parsing of the given manager element.
Definition d2_config.cc:667
isc::d2::DdnsDomainListMgr::getName
const std::string getName() const
Fetches the manager's name.
Definition d2_config.h:682
isc::d2::DdnsDomainListMgr::DdnsDomainListMgr
DdnsDomainListMgr(const std::string &name)
Constructor.
Definition d2_config.cc:298
isc::d2::DdnsDomainListMgr::getDomains
const DdnsDomainMapPtr & getDomains()
Fetches the domain list.
Definition d2_config.h:704
isc::d2::DdnsDomainListMgr::getWildcardDomain
const DdnsDomainPtr & getWildcardDomain()
Fetches the wild card domain.
Definition d2_config.h:697
isc::d2::DdnsDomainListMgr::matchDomain
virtual bool matchDomain(const std::string &fqdn, DdnsDomainPtr &domain)
Matches a given name to a domain based on a longest match scheme.
Definition d2_config.cc:325
isc::d2::DdnsDomainListMgr::setDomains
void setDomains(DdnsDomainMapPtr domains)
Sets the manger's domain list to the given list of domains.
Definition d2_config.cc:307
isc::d2::DdnsDomainListMgr::wildcard_domain_name_
static const char * wildcard_domain_name_
defines the domain name for denoting the wildcard domain.
Definition d2_config.h:649
isc::d2::DdnsDomainListMgr::~DdnsDomainListMgr
virtual ~DdnsDomainListMgr()
Destructor.
Definition d2_config.cc:303
isc::d2::DdnsDomainListMgr::size
uint32_t size() const
Returns the number of domains in the domain list.
Definition d2_config.h:689
isc::d2::DdnsDomainListMgr::toElement
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition d2_config.cc:389
isc::d2::DdnsDomainListParser
Parser for a list of DdnsDomains.
Definition d2_config.h:894
isc::d2::DdnsDomainListParser::parse
DdnsDomainMapPtr parse(data::ConstElementPtr domain_list_config, const TSIGKeyInfoMapPtr keys)
Performs the actual parsing of the given list "ddns-domain" elements.
Definition d2_config.cc:644
isc::d2::DdnsDomainParser
Parser for DdnsDomain.
Definition d2_config.h:875
isc::d2::DdnsDomainParser::parse
DdnsDomainPtr parse(data::ConstElementPtr domain_config, const TSIGKeyInfoMapPtr keys)
Performs the actual parsing of the given "ddns-domain" element.
Definition d2_config.cc:608
isc::d2::DdnsDomain::getKeyName
const std::string getKeyName() const
Getter which returns the domain's TSIG key name.
Definition d2_config.h:596
isc::d2::DdnsDomain::getName
const std::string getName() const
Getter which returns the domain's name.
Definition d2_config.h:586
isc::d2::DdnsDomain::getServers
const DnsServerInfoStoragePtr & getServers()
Getter which returns the domain's list of servers.
Definition d2_config.h:603
isc::d2::DdnsDomain::DdnsDomain
DdnsDomain(const std::string &name, DnsServerInfoStoragePtr servers, const std::string &key_name="")
Constructor.
Definition d2_config.cc:260
isc::d2::DdnsDomain::~DdnsDomain
virtual ~DdnsDomain()
Destructor.
Definition d2_config.cc:266
isc::d2::DdnsDomain::toElement
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition d2_config.cc:270
isc::d2::DnsServerInfoListParser
Parser for a list of DnsServerInfos.
Definition d2_config.h:851
isc::d2::DnsServerInfoListParser::parse
DnsServerInfoStoragePtr parse(data::ConstElementPtr server_list_config, data::ConstElementPtr domain_config, const TSIGKeyInfoMapPtr keys)
Performs the actual parsing of the given list "dns-server" elements.
Definition d2_config.cc:592
isc::d2::DnsServerInfoParser
Parser for DnsServerInfo.
Definition d2_config.h:823
isc::d2::DnsServerInfoParser::parse
DnsServerInfoPtr parse(data::ConstElementPtr server_config, data::ConstElementPtr domain_config, const TSIGKeyInfoMapPtr keys)
Performs the actual parsing of the given "dns-server" element.
Definition d2_config.cc:500
isc::d2::DnsServerInfo::isEnabled
bool isEnabled() const
Convenience method which returns whether or not the server is enabled.
Definition d2_config.h:489
isc::d2::DnsServerInfo::toText
std::string toText() const
Returns a text representation for the server.
Definition d2_config.cc:227
isc::d2::DnsServerInfo::getKeyName
const std::string getKeyName() const
Convenience method which returns the server's TSIG key name.
Definition d2_config.cc:218
isc::d2::DnsServerInfo::getTSIGKeyInfo
const TSIGKeyInfoPtr & getTSIGKeyInfo()
Getter which returns the server's TSIGKey info.
Definition d2_config.h:513
isc::d2::DnsServerInfo::getHostname
const std::string getHostname() const
Getter which returns the server's hostname.
Definition d2_config.h:467
isc::d2::DnsServerInfo::DnsServerInfo
DnsServerInfo(const std::string &hostname, isc::asiolink::IOAddress ip_address, uint32_t port=STANDARD_DNS_PORT, bool enabled=true, const TSIGKeyInfoPtr &tsig_key_info=TSIGKeyInfoPtr(), bool inherited_key=true)
Constructor.
Definition d2_config.cc:203
isc::d2::DnsServerInfo::toElement
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition d2_config.cc:234
isc::d2::DnsServerInfo::getPort
uint32_t getPort() const
Getter which returns the server's port number.
Definition d2_config.h:474
isc::d2::DnsServerInfo::enable
void enable()
Sets the server's enabled flag to true.
Definition d2_config.h:494
isc::d2::DnsServerInfo::STANDARD_DNS_PORT
static const uint32_t STANDARD_DNS_PORT
defines DNS standard port value
Definition d2_config.h:436
isc::d2::DnsServerInfo::disable
void disable()
Sets the server's enabled flag to false.
Definition d2_config.h:499
isc::d2::DnsServerInfo::getIpAddress
const isc::asiolink::IOAddress & getIpAddress() const
Getter which returns the server's ip_address.
Definition d2_config.h:481
isc::d2::DnsServerInfo::~DnsServerInfo
virtual ~DnsServerInfo()
Destructor.
Definition d2_config.cc:214
isc::d2::TSIGKeyInfoListParser
Parser for a list of TSIGKeyInfos.
Definition d2_config.h:802
isc::d2::TSIGKeyInfoListParser::parse
TSIGKeyInfoMapPtr parse(data::ConstElementPtr key_list_config)
Performs the parsing of the given list "tsig-key" elements.
Definition d2_config.cc:478
isc::d2::TSIGKeyInfoParser
Parser for TSIGKeyInfo.
Definition d2_config.h:784
isc::d2::TSIGKeyInfoParser::parse
TSIGKeyInfoPtr parse(data::ConstElementPtr key_config)
Performs the actual parsing of the given "tsig-key" element.
Definition d2_config.cc:405
isc::d2::TSIGKeyInfo::HMAC_SHA224_STR
static const char * HMAC_SHA224_STR
Definition d2_config.h:273
isc::d2::TSIGKeyInfo::TSIGKeyInfo
TSIGKeyInfo(const std::string &name, const std::string &algorithm, const std::string &secret, std::string secret_file="", uint32_t digestbits=0)
Constructor.
Definition d2_config.cc:130
isc::d2::TSIGKeyInfo::getAlgorithm
const std::string getAlgorithm() const
Getter which returns the key's algorithm string ID.
Definition d2_config.h:327
isc::d2::TSIGKeyInfo::~TSIGKeyInfo
virtual ~TSIGKeyInfo()
Destructor.
Definition d2_config.cc:138
isc::d2::TSIGKeyInfo::getTSIGKey
const D2TsigKeyPtr & getTSIGKey() const
Getter which returns the TSIG key used to sign and verify messages.
Definition d2_config.h:356
isc::d2::TSIGKeyInfo::HMAC_MD5_STR
static const char * HMAC_MD5_STR
Defines string values for the supported TSIG algorithms.
Definition d2_config.h:270
isc::d2::TSIGKeyInfo::getName
const std::string getName() const
Getter which returns the key's name.
Definition d2_config.h:320
isc::d2::TSIGKeyInfo::toElement
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition d2_config.cc:181
isc::d2::TSIGKeyInfo::HMAC_SHA1_STR
static const char * HMAC_SHA1_STR
Definition d2_config.h:271
isc::d2::TSIGKeyInfo::HMAC_SHA256_STR
static const char * HMAC_SHA256_STR
Definition d2_config.h:272
isc::d2::TSIGKeyInfo::getDigestbits
uint32_t getDigestbits() const
Getter which returns the key's minimum truncated length.
Definition d2_config.h:334
isc::d2::TSIGKeyInfo::stringToAlgorithmName
static const dns::Name & stringToAlgorithmName(const std::string &algorithm_id)
Converts algorithm id to dns::TSIGKey algorithm dns::Name.
Definition d2_config.cc:142
isc::d2::TSIGKeyInfo::HMAC_SHA512_STR
static const char * HMAC_SHA512_STR
Definition d2_config.h:275
isc::d2::TSIGKeyInfo::getSecret
const std::string getSecret() const
Getter which returns the key's secret.
Definition d2_config.h:341
isc::d2::TSIGKeyInfo::getSecretFile
const std::string getSecretFile() const
Getter which returns the secret file name.
Definition d2_config.h:348
isc::d2::TSIGKeyInfo::HMAC_SHA384_STR
static const char * HMAC_SHA384_STR
Definition d2_config.h:274
isc::data::SimpleParser
A simple parser.
Definition lib/cc/simple_parser.h:68
isc::dns::Name
The Name class encapsulates DNS names.
Definition name.h:219
isc::process::ConfigBase
Base class for all configurations.
Definition config_base.h:33
d2_tsig_key.h
d_cfg_mgr.h
data.h
dhcp_parsers.h
exceptions.h
isc_throw
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Definition exceptions/exceptions.h:210
io_service.h
simple_parser.h
isc::asiolink::operator<<
std::ostream & operator<<(std::ostream &os, const IOAddress &address)
Insert the IOAddress as a string into stream.
Definition io_address.cc:131
isc::config
Definition command_interpreter.cc:23
isc::d2
Definition check_exists_add.cc:19
isc::d2::DdnsDomainListMgrPtr
boost::shared_ptr< DdnsDomainListMgr > DdnsDomainListMgrPtr
Defines a pointer for DdnsDomain instances.
Definition d2_cfg_mgr.h:175
isc::d2::DdnsDomainPtr
boost::shared_ptr< DdnsDomain > DdnsDomainPtr
Defines a pointer for DdnsDomain instances.
Definition d2_config.h:624
isc::d2::DdnsDomainMapPtr
boost::shared_ptr< DdnsDomainMap > DdnsDomainMapPtr
Defines a pointer to DdnsDomain storage containers.
Definition d2_config.h:633
isc::d2::TSIGKeyInfoMapPair
std::pair< std::string, TSIGKeyInfoPtr > TSIGKeyInfoMapPair
Defines a iterator pairing of name and TSIGKeyInfo.
Definition d2_config.h:422
isc::d2::DnsServerInfoPtr
boost::shared_ptr< DnsServerInfo > DnsServerInfoPtr
Defines a pointer for DnsServerInfo instances.
Definition d2_config.h:554
isc::d2::DdnsDomainMap
std::map< std::string, DdnsDomainPtr > DdnsDomainMap
Defines a map of DdnsDomains, keyed by the domain name.
Definition d2_config.h:627
isc::d2::DdnsDomainMapPair
std::pair< std::string, DdnsDomainPtr > DdnsDomainMapPair
Defines a iterator pairing domain name and DdnsDomain.
Definition d2_config.h:630
isc::d2::TSIGKeyInfoPtr
boost::shared_ptr< TSIGKeyInfo > TSIGKeyInfoPtr
Defines a pointer for TSIGKeyInfo instances.
Definition d2_config.h:416
isc::d2::DnsServerInfoStorage
std::vector< DnsServerInfoPtr > DnsServerInfoStorage
Defines a storage container for DnsServerInfo pointers.
Definition d2_config.h:557
isc::d2::TSIGKeyInfoMap
std::map< std::string, TSIGKeyInfoPtr > TSIGKeyInfoMap
Defines a map of TSIGKeyInfos, keyed by the name.
Definition d2_config.h:419
isc::d2::DnsServerInfoStoragePtr
boost::shared_ptr< DnsServerInfoStorage > DnsServerInfoStoragePtr
Defines a pointer to DnsServerInfo storage containers.
Definition d2_config.h:560
isc::d2::D2ParamsPtr
boost::shared_ptr< D2Params > D2ParamsPtr
Defines a pointer for D2Params instances.
Definition d2_config.h:257
isc::d2::DScalarContextPtr
boost::shared_ptr< DScalarContext > DScalarContextPtr
Defines a pointer for DScalarContext instances.
Definition d2_config.h:778
isc::d2::D2TsigKeyPtr
boost::shared_ptr< D2TsigKey > D2TsigKeyPtr
Type of pointer to a D2 TSIG key.
Definition d2_tsig_key.h:71
isc::d2::TSIGKeyInfoMapPtr
boost::shared_ptr< TSIGKeyInfoMap > TSIGKeyInfoMapPtr
Defines a pointer to map of TSIGkeyInfos.
Definition d2_config.h:425
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:29
isc::data::ElementPtr
boost::shared_ptr< Element > ElementPtr
Definition data.h:28
isc::dhcp_ddns::NameChangeFormat
NameChangeFormat
Defines the list of data wire formats supported.
Definition ncr_msg.h:59
isc::dhcp_ddns::NameChangeProtocol
NameChangeProtocol
Defines the list of socket protocols supported.
Definition ncr_io.h:69
isc::dns::name
Definition name.cc:69
isc::process::ConfigPtr
boost::shared_ptr< ConfigBase > ConfigPtr
Non-const pointer to the ConfigBase.
Definition config_base.h:176
isc::util::file
Definition filesystem.cc:28
isc
Defines the logger used by the top-level component of kea-lfc.
Definition agent_parser.cc:148
isc::data::CfgToElement
Abstract class for configuration Cfg_* classes.
Definition cfg_to_element.h:29
isc::data::UserContext
Base class for user context.
Definition user_context.h:22
user_context.h