Kea 2.7.0
simple_add.h
Go to the documentation of this file.
1// Copyright (C) 2020-2021 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 SIMPLE_ADD_H
8#define SIMPLE_ADD_H
9
11
12#include <d2srv/nc_trans.h>
13#include <dns/rdata.h>
14
15namespace isc {
16namespace d2 {
17
20public:
21 SimpleAddTransactionError(const char* file, size_t line,
22 const char* what) :
23 isc::Exception(file, line, what) { };
24};
25
48public:
49
51
53
57
59
60 static const int FQDN_IN_USE_EVT = NCT_DERIVED_EVENT_MIN + 1;
61
65
80 DdnsDomainPtr& forward_domain,
81 DdnsDomainPtr& reverse_domain,
82 D2CfgMgrPtr& cfg_mgr);
83
85 virtual ~SimpleAddTransaction();
86
87protected:
94 virtual void defineEvents();
95
103 virtual void verifyEvents();
104
111 virtual void defineStates();
112
120 virtual void verifyStates();
121
142 void readyHandler();
143
166
190
235
277
292 void processAddOkHandler();
293
311
330
348};
349
351typedef boost::shared_ptr<SimpleAddTransaction> SimpleAddTransactionPtr;
352
353} // namespace isc::d2
354} // namespace isc
355#endif
This is a base class for exceptions thrown from the DNS library module.
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Embodies the "life-cycle" required to carry out a DDNS update.
Definition nc_trans.h:77
static const int NCT_DERIVED_STATE_MIN
Value at which custom states in a derived class should begin.
Definition nc_trans.h:108
static const int NCT_DERIVED_EVENT_MIN
Value at which custom events in a derived class should begin.
Definition nc_trans.h:144
Thrown if the SimpleAddTransaction encounters a general error.
Definition simple_add.h:19
SimpleAddTransactionError(const char *file, size_t line, const char *what)
Definition simple_add.h:21
Embodies the "life-cycle" required to carry out a DDNS Add update.
Definition simple_add.h:47
void selectingFwdServerHandler()
State handler for SELECTING_FWD_SERVER_ST.
virtual void defineEvents()
Adds events defined by SimpleAddTransaction to the event set.
Definition simple_add.cc:47
static const int FQDN_IN_USE_EVT
Event sent when an add attempt fails with address in use.
Definition simple_add.h:60
void readyHandler()
State handler for READY_ST.
void processAddOkHandler()
State handler for PROCESS_TRANS_OK_ST.
static const int REPLACING_REV_PTRS_ST
State that attempts to replace reverse PTR records.
Definition simple_add.h:55
void selectingRevServerHandler()
State handler for SELECTING_REV_SERVER_ST.
SimpleAddTransaction(asiolink::IOServicePtr &io_service, dhcp_ddns::NameChangeRequestPtr &ncr, DdnsDomainPtr &forward_domain, DdnsDomainPtr &reverse_domain, D2CfgMgrPtr &cfg_mgr)
Constructor.
Definition simple_add.cc:30
void replacingFwdAddrsHandler()
State handler for REPLACING_FWD_ADDRS_ST.
void replacingRevPtrsHandler()
State handler for REPLACING_REV_PTRS_ST.
virtual void verifyEvents()
Validates the contents of the set of events.
Definition simple_add.cc:57
void buildReplaceRevPtrsRequest()
Builds a DNS request to replace a reverse DNS entry for an FQDN.
static const int FQDN_NOT_IN_USE_EVT
Event sent when replace attempt to fails with address not in use.
Definition simple_add.h:63
virtual ~SimpleAddTransaction()
Destructor.
Definition simple_add.cc:43
static const int REPLACING_FWD_ADDRS_ST
State that attempts to add forward address records.
Definition simple_add.h:52
virtual void verifyStates()
Validates the contents of the set of states.
void processAddFailedHandler()
State handler for PROCESS_TRANS_FAILED_ST.
virtual void defineStates()
Adds states defined by SimpleAddTransaction to the state set.
Definition simple_add.cc:75
void buildReplaceFwdAddressRequest()
Builds a DNS request to add/replace a forward DNS entry for an FQDN.
boost::shared_ptr< DdnsDomain > DdnsDomainPtr
Defines a pointer for DdnsDomain instances.
Definition d2_config.h:622
boost::shared_ptr< D2CfgMgr > D2CfgMgrPtr
Defines a shared pointer to D2CfgMgr.
Definition d2_cfg_mgr.h:334
boost::shared_ptr< SimpleAddTransaction > SimpleAddTransactionPtr
Defines a pointer to a SimpleAddTransaction.
Definition simple_add.h:351
boost::shared_ptr< NameChangeRequest > NameChangeRequestPtr
Defines a pointer to a NameChangeRequest.
Definition ncr_msg.h:241
Defines the logger used by the top-level component of kea-lfc.
This file defines the class NameChangeTransaction.