Kea 2.7.5
|
Embodies the "life-cycle" required to carry out a DDNS update. More...
#include <nc_trans.h>
Public Member Functions | |
NameChangeTransaction (asiolink::IOServicePtr &io_service, dhcp_ddns::NameChangeRequestPtr &ncr, DdnsDomainPtr &forward_domain, DdnsDomainPtr &reverse_domain, D2CfgMgrPtr &cfg_mgr) | |
Constructor. | |
virtual | ~NameChangeTransaction () |
Destructor. | |
const dns::RRType & | getAddressRRType () const |
Returns the DHCP data type for the lease address. | |
const DnsServerInfoPtr & | getCurrentServer () const |
Fetches the currently selected server. | |
const DNSClientPtr & | getDNSClient () const |
Fetches the DNSClient instance. | |
const D2UpdateMessagePtr & | getDnsUpdateRequest () const |
Fetches the current DNS update request packet. | |
const D2UpdateMessagePtr & | getDnsUpdateResponse () const |
Fetches the most recent DNS update response packet. | |
DNSClient::Status | getDnsUpdateStatus () const |
Fetches the most recent DNS update status. | |
bool | getForwardChangeCompleted () const |
Returns whether the forward change has completed or not. | |
DdnsDomainPtr & | getForwardDomain () |
Fetches the forward DdnsDomain. | |
const dhcp_ddns::NameChangeRequestPtr & | getNcr () const |
Fetches the NameChangeRequest for this transaction. | |
dhcp_ddns::NameChangeStatus | getNcrStatus () const |
Fetches the NameChangeRequest status of the transaction. | |
std::string | getRequestId () const |
Fetches the request id that identifies this transaction. | |
bool | getReverseChangeCompleted () const |
Returns whether the reverse change has completed or not. | |
DdnsDomainPtr & | getReverseDomain () |
Fetches the reverse DdnsDomain. | |
const TransactionKey & | getTransactionKey () const |
Fetches the unique key that identifies this transaction. | |
size_t | getUpdateAttempts () const |
Fetches the update attempt count for the current update. | |
virtual void | operator() (DNSClient::Status status) |
Serves as the DNSClient IO completion event handler. | |
void | startTransaction () |
Begins execution of the transaction. | |
Public Member Functions inherited from isc::d2::DNSClient::Callback | |
virtual | ~Callback () |
Virtual destructor. | |
Public Member Functions inherited from isc::util::StateModel | |
StateModel () | |
Constructor. | |
virtual | ~StateModel () |
Destructor. | |
bool | didModelFail () const |
Returns whether or not the model failed. | |
void | endModel () |
Conducts a normal transition to the end of the model. | |
std::string | getContextStr () const |
Convenience method which returns a string rendition of the current state and next event. | |
unsigned int | getCurrState () const |
Fetches the model's current state. | |
std::string | getEventLabel (const int event) const |
Fetches the label associated with an event value. | |
unsigned int | getLastEvent () const |
Fetches the model's last event. | |
unsigned int | getNextEvent () const |
Fetches the model's next event. | |
std::string | getPrevContextStr () const |
Convenience method which returns a string rendition of the previous state and last event. | |
unsigned int | getPrevState () const |
Fetches the model's previous state. | |
std::string | getStateLabel (const int state) const |
Fetches the label associated with an state value. | |
bool | isModelDone () const |
Returns whether or not the model has finished execution. | |
bool | isModelNew () const |
Returns whether or not the model is new. | |
bool | isModelPaused () const |
Returns whether or not the model is paused. | |
bool | isModelRunning () const |
Returns whether or not the model is running. | |
bool | isModelWaiting () const |
Returns whether or not the model is waiting. | |
void | nopStateHandler () |
An empty state handler. | |
virtual void | runModel (unsigned int event) |
Processes events through the state model. | |
void | startModel (const int start_state) |
Begins execution of the model. | |
void | unpauseModel () |
Unpauses state model. | |
Static Public Attributes | |
static const unsigned int | DNS_UPDATE_DEFAULT_TIMEOUT = 100 |
Default time to assign to a single DNS update. | |
static const int | IO_COMPLETED_EVT = SM_DERIVED_EVENT_MIN + 5 |
Issued when a DNS update packet exchange has completed. | |
static const unsigned int | MAX_UPDATE_TRIES_PER_SERVER = 3 |
Maximum times to attempt a single update on a given server. | |
static const int | NCT_DERIVED_EVENT_MIN = SM_DERIVED_EVENT_MIN + 101 |
Value at which custom events in a derived class should begin. | |
static const int | NCT_DERIVED_STATE_MIN = SM_DERIVED_STATE_MIN + 101 |
Value at which custom states in a derived class should begin. | |
static const int | NO_MORE_SERVERS_EVT =SM_DERIVED_EVENT_MIN + 4 |
Issued when there are no more servers from which to select. | |
static const int | PROCESS_TRANS_FAILED_ST = SM_DERIVED_STATE_MIN + 5 |
State which processes an unsuccessful transaction conclusion. | |
static const int | PROCESS_TRANS_OK_ST = SM_DERIVED_STATE_MIN + 4 |
State which processes successful transaction conclusion. | |
static const int | READY_ST = SM_DERIVED_STATE_MIN + 1 |
State from which a transaction is started. | |
static const int | SELECT_SERVER_EVT = SM_DERIVED_EVENT_MIN + 1 |
Issued when a server needs to be selected. | |
static const int | SELECTING_FWD_SERVER_ST = SM_DERIVED_STATE_MIN + 2 |
State in which forward DNS server selection is done. | |
static const int | SELECTING_REV_SERVER_ST = SM_DERIVED_STATE_MIN + 3 |
State in which reverse DNS server selection is done. | |
static const int | SERVER_IO_ERROR_EVT = SM_DERIVED_EVENT_MIN + 3 |
Issued when an update fails due to an IO error. | |
static const int | SERVER_SELECTED_EVT = SM_DERIVED_EVENT_MIN + 2 |
Issued when a server has been selected. | |
static const int | UPDATE_FAILED_EVT = SM_DERIVED_EVENT_MIN + 7 |
Issued when the attempted update fails to complete. | |
static const int | UPDATE_OK_EVT = SM_DERIVED_EVENT_MIN + 6 |
Issued when the attempted update successfully completed. | |
Static Public Attributes inherited from isc::util::StateModel | |
static const int | END_EVT = 2 |
Event issued to end the model execution. | |
static const int | END_ST = 1 |
Final state, all the state model has reached its conclusion. | |
static const int | FAIL_EVT = 3 |
Event issued to abort the model execution. | |
static const int | NEW_ST = 0 |
State that a state model is in immediately after construction. | |
static const int | NOP_EVT = 0 |
Signifies that no event has occurred. | |
static const int | SM_DERIVED_EVENT_MIN = 11 |
Value at which custom events in a derived class should begin. | |
static const int | SM_DERIVED_STATE_MIN = 11 |
Value at which custom states in a derived class should begin. | |
static const int | START_EVT = 1 |
Event issued to start the model execution. | |
Protected Member Functions | |
void | addDhcidRdata (dns::RRsetPtr &rrset) |
Adds an RData for the lease client's DHCID to the given RRset. | |
void | addLeaseAddressRdata (dns::RRsetPtr &rrset) |
Adds an RData for the lease address to the given RRset. | |
void | addPtrRdata (dns::RRsetPtr &rrset) |
Adds an RData for the lease FQDN to the given RRset. | |
void | clearDnsUpdateRequest () |
Destroys the current update request packet. | |
void | clearDnsUpdateResponse () |
Destroys the current update response packet. | |
void | clearUpdateAttempts () |
Resets the update attempts count. | |
virtual void | defineEvents () |
Adds events defined by NameChangeTransaction to the event set. | |
virtual void | defineStates () |
Adds states defined by NameChangeTransaction to the state set. | |
const asiolink::IOServicePtr & | getIOService () |
Fetches the IOService the transaction uses for IO processing. | |
void | initServerSelection (const DdnsDomainPtr &domain) |
Initializes server selection from the given DDNS domain. | |
virtual void | onModelFailure (const std::string &explanation) |
Handler for fatal model execution errors. | |
virtual D2UpdateMessagePtr | prepNewRequest (DdnsDomainPtr domain) |
Creates a new DNS update request based on the given domain. | |
std::string | responseString () const |
Returns a string version of the current response status and rcode. | |
void | retryTransition (const int fail_to_state) |
Determines the state and next event based on update attempts. | |
bool | selectNextServer () |
Selects the next server in the current server list. | |
bool | selectTSIGKey () |
Selects the TSIG key. | |
virtual void | sendUpdate (const std::string &comment="") |
Send the update request to the current server. | |
void | setDnsUpdateRequest (D2UpdateMessagePtr &request) |
Sets the update request packet to the given packet. | |
void | setDnsUpdateResponse (D2UpdateMessagePtr &response) |
Sets the update response packet to the given packet. | |
void | setDnsUpdateStatus (const DNSClient::Status &status) |
Sets the update status to the given status value. | |
void | setForwardChangeCompleted (const bool value) |
Sets the forward change completion flag to the given value. | |
void | setNcrStatus (const dhcp_ddns::NameChangeStatus &status) |
Sets the status of the transaction's NameChangeRequest. | |
void | setReverseChangeCompleted (const bool value) |
Sets the reverse change completion flag to the given value. | |
void | setUpdateAttempts (const size_t value) |
Sets the update attempt count to the given value. | |
std::string | transactionOutcomeString () const |
Returns a string version of transaction outcome. | |
virtual void | verifyEvents () |
Validates the contents of the set of events. | |
virtual void | verifyStates () |
Validates the contents of the set of states. | |
Protected Member Functions inherited from isc::util::StateModel | |
void | abortModel (const std::string &explanation) |
Aborts model execution. | |
void | defineEvent (unsigned int value, const std::string &label) |
Adds an event value and associated label to the set of events. | |
void | defineState (unsigned int value, const std::string &label, StateHandler handler, const StatePausing &state_pausing=STATE_PAUSE_NEVER) |
Adds an state value and associated label to the set of states. | |
bool | doOnEntry () |
Checks if on entry flag is true. | |
bool | doOnExit () |
Checks if on exit flag is true. | |
const EventPtr & | getEvent (unsigned int value) |
Fetches the event referred to by value. | |
const StatePtr | getState (unsigned int value) |
Fetches the state referred to by value. | |
const StatePtr | getStateInternal (unsigned int value) |
Fetches the state referred to by value. | |
void | initDictionaries () |
Initializes the event and state dictionaries. | |
void | postNextEvent (unsigned int event) |
Sets the next event to the given event value. | |
void | setState (unsigned int state) |
Sets the current state to the given state value. | |
void | transition (unsigned int state, unsigned int event) |
Sets up the model to transition into given state with a given event. | |
Embodies the "life-cycle" required to carry out a DDNS update.
NameChangeTransaction is the base class that provides the common state model mechanics and services performing the DNS updates needed to carry out a DHCP_DDNS request as described by a NameChangeRequest. It is derived from StateModel which supplies a simple, general purpose FSM implementation.
Upon construction, each transaction has all of the information and resources required to carry out its assigned request, including the list(s) of DNS server(s) needed. It is responsible for knowing what conversations it must have with which servers and in the order necessary to fulfill the request. Upon fulfillment of the request, the transaction's work is complete and it is destroyed.
Fulfillment of the request is carried out through the performance of the transaction's state model. Using a state driven implementation accounts for the conditional processing flow necessary to meet the DDNS RFCs as well as the asynchronous nature of IO with DNS servers.
Derivations of the class are responsible for defining the state model and conversations necessary to carry out the specific of request.
Conversations with DNS servers are done through the use of the DNSClient class. The DNSClient provides a IOService-based means a service which performs a single, packet exchange with a given DNS server. It sends a single update to the server and returns the response, asynchronously, through a callback. At each point in a transaction's state model, where an update is to be sent, the model "suspends" until notified by the DNSClient via the callback. Suspension is done by posting a StateModel::NOP_EVT as the next event, stopping the state model execution.
Resuming state model execution when a DNS update completes is done by a call to StateModel::runStateModel() from within the DNSClient callback, with an event value of IO_COMPLETED_EVT (described below).
This class defines a set of events and states that are a common to all transactions. Each derivation may add define additional states and events as needed, but it must support the common set. NameChangeTransaction does not supply any state handlers. These are the sole responsibility of derivations.
Definition at line 77 of file nc_trans.h.
isc::d2::NameChangeTransaction::NameChangeTransaction | ( | asiolink::IOServicePtr & | io_service, |
dhcp_ddns::NameChangeRequestPtr & | ncr, | ||
DdnsDomainPtr & | forward_domain, | ||
DdnsDomainPtr & | reverse_domain, | ||
D2CfgMgrPtr & | cfg_mgr ) |
Constructor.
Instantiates a transaction that is ready to be started.
io_service | IO service to be used for IO processing |
ncr | is the NameChangeRequest to fulfill |
forward_domain | is the domain to use for forward DNS updates |
reverse_domain | is the domain to use for reverse DNS updates |
cfg_mgr | reference to the current configuration manager |
NameChangeTransactionError | if given an null request, if forward change is enabled but forward domain is null, if reverse change is enabled but reverse domain is null. |
Definition at line 68 of file nc_trans.cc.
References isc_throw.
|
virtual |
Destructor.
Definition at line 107 of file nc_trans.cc.
|
protected |
Adds an RData for the lease client's DHCID to the given RRset.
Creates an in::DHCID() RData instance from the NCR DHCID and adds it to the given RRset.
rrset | RRset to which to add the RData |
NameChangeTransactionError | if RData cannot be constructed or the RData cannot be added to the given RRset. |
Definition at line 389 of file nc_trans.cc.
References isc_throw, and isc::Exception::what().
Referenced by isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::NameAddTransaction::buildReplaceRevPtrsRequest(), and isc::d2::SimpleAddTransaction::buildReplaceRevPtrsRequest().
|
protected |
Adds an RData for the lease address to the given RRset.
Creates an in::A() or in:AAAA() RData instance from the NCR lease address and adds it to the given RRset.
rrset | RRset to which to add the RData |
NameChangeTransactionError | if RData cannot be constructed or the RData cannot be added to the given RRset. |
Definition at line 367 of file nc_trans.cc.
References isc_throw, and isc::Exception::what().
Referenced by isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), and isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceFwdAddressRequest().
|
protected |
Adds an RData for the lease FQDN to the given RRset.
Creates an in::PTR() RData instance from the NCR FQDN and adds it to the given RRset.
rrset | RRset to which to add the RData |
NameChangeTransactionError | if RData cannot be constructed or the RData cannot be added to the given RRset. |
Definition at line 409 of file nc_trans.cc.
References getNcr(), isc_throw, and isc::Exception::what().
Referenced by isc::d2::CheckExistsRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::NameRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::NameAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddTransaction::buildReplaceRevPtrsRequest(), and isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceRevPtrsRequest().
|
protected |
Destroys the current update request packet.
Definition at line 304 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
|
protected |
Destroys the current update response packet.
Definition at line 324 of file nc_trans.cc.
|
protected |
Resets the update attempts count.
Definition at line 309 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
|
protectedvirtual |
Adds events defined by NameChangeTransaction to the event set.
This method adds the events common to NCR transaction processing to the set of define events. It invokes the superclass's implementation first to maintain the hierarchical chain of event definition. Derivations of NameChangeTransaction must invoke its implementation in like fashion.
StateModelError | if an event definition is invalid or a duplicate. |
Reimplemented from isc::util::StateModel.
Reimplemented in isc::d2::CheckExistsAddTransaction, isc::d2::CheckExistsRemoveTransaction, isc::d2::NameAddTransaction, isc::d2::NameRemoveTransaction, isc::d2::SimpleAddTransaction, isc::d2::SimpleAddWithoutDHCIDTransaction, isc::d2::SimpleRemoveTransaction, and isc::d2::SimpleRemoveWithoutDHCIDTransaction.
Definition at line 228 of file nc_trans.cc.
References isc::util::StateModel::defineEvent(), isc::util::StateModel::defineEvents(), IO_COMPLETED_EVT, NO_MORE_SERVERS_EVT, SELECT_SERVER_EVT, SERVER_IO_ERROR_EVT, SERVER_SELECTED_EVT, UPDATE_FAILED_EVT, and UPDATE_OK_EVT.
Referenced by isc::d2::CheckExistsAddTransaction::defineEvents(), isc::d2::CheckExistsRemoveTransaction::defineEvents(), isc::d2::NameAddTransaction::defineEvents(), isc::d2::NameRemoveTransaction::defineEvents(), isc::d2::SimpleAddTransaction::defineEvents(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineEvents(), isc::d2::SimpleRemoveTransaction::defineEvents(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineEvents().
|
protectedvirtual |
Adds states defined by NameChangeTransaction to the state set.
This method adds the states common to NCR transaction processing to the dictionary of states. It invokes the superclass's implementation first to maintain the hierarchical chain of state definition. Derivations of NameChangeTransaction must invoke its implementation in like fashion.
StateModelError | if an state definition is invalid or a duplicate. |
Reimplemented from isc::util::StateModel.
Reimplemented in isc::d2::CheckExistsAddTransaction, isc::d2::CheckExistsRemoveTransaction, isc::d2::NameAddTransaction, isc::d2::NameRemoveTransaction, isc::d2::SimpleAddTransaction, isc::d2::SimpleAddWithoutDHCIDTransaction, isc::d2::SimpleRemoveTransaction, and isc::d2::SimpleRemoveWithoutDHCIDTransaction.
Definition at line 258 of file nc_trans.cc.
References isc::util::StateModel::defineStates().
Referenced by isc::d2::CheckExistsAddTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::defineStates(), isc::d2::NameAddTransaction::defineStates(), isc::d2::NameRemoveTransaction::defineStates(), isc::d2::SimpleAddTransaction::defineStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineStates(), isc::d2::SimpleRemoveTransaction::defineStates(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineStates().
const dns::RRType & isc::d2::NameChangeTransaction::getAddressRRType | ( | ) | const |
Returns the DHCP data type for the lease address.
Definition at line 574 of file nc_trans.cc.
References isc::dns::RRType::A(), and isc::dns::RRType::AAAA().
Referenced by isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveFwdRRsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), and isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceFwdAddressRequest().
const DnsServerInfoPtr & isc::d2::NameChangeTransaction::getCurrentServer | ( | ) | const |
Fetches the currently selected server.
Definition at line 534 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
const DNSClientPtr & isc::d2::NameChangeTransaction::getDNSClient | ( | ) | const |
Fetches the DNSClient instance.
Definition at line 529 of file nc_trans.cc.
const D2UpdateMessagePtr & isc::d2::NameChangeTransaction::getDnsUpdateRequest | ( | ) | const |
Fetches the current DNS update request packet.
Definition at line 544 of file nc_trans.cc.
const D2UpdateMessagePtr & isc::d2::NameChangeTransaction::getDnsUpdateResponse | ( | ) | const |
Fetches the most recent DNS update response packet.
Definition at line 554 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), and responseString().
DNSClient::Status isc::d2::NameChangeTransaction::getDnsUpdateStatus | ( | ) | const |
Fetches the most recent DNS update status.
Definition at line 549 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), and responseString().
bool isc::d2::NameChangeTransaction::getForwardChangeCompleted | ( | ) | const |
Returns whether the forward change has completed or not.
The value returned is only meaningful if the NameChangeRequest calls for a forward change to be done. The value returned indicates if forward change has been completed successfully.
Definition at line 559 of file nc_trans.cc.
Referenced by transactionOutcomeString().
DdnsDomainPtr & isc::d2::NameChangeTransaction::getForwardDomain | ( | ) |
Fetches the forward DdnsDomain.
Definition at line 446 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveFwdRRsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceFwdAddressRequest(), isc::d2::CheckExistsAddTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::readyHandler(), isc::d2::NameAddTransaction::readyHandler(), isc::d2::NameRemoveTransaction::readyHandler(), isc::d2::SimpleAddTransaction::readyHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::readyHandler(), isc::d2::SimpleRemoveTransaction::readyHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::readyHandler(), isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler().
|
inlineprotected |
Fetches the IOService the transaction uses for IO processing.
Definition at line 364 of file nc_trans.h.
const dhcp_ddns::NameChangeRequestPtr & isc::d2::NameChangeTransaction::getNcr | ( | ) | const |
Fetches the NameChangeRequest for this transaction.
Definition at line 426 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), addPtrRdata(), isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveFwdRRsRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::NameRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveRevPtrsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceFwdAddressRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::NameAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceRevPtrsRequest(), isc::d2::CheckExistsAddTransaction::processAddOkHandler(), isc::d2::NameAddTransaction::processAddOkHandler(), isc::d2::SimpleAddTransaction::processAddOkHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddOkHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveOkHandler(), isc::d2::NameRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveOkHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
dhcp_ddns::NameChangeStatus isc::d2::NameChangeTransaction::getNcrStatus | ( | ) | const |
Fetches the NameChangeRequest status of the transaction.
This is the current status of the NameChangeRequest, not to be confused with the state of the transaction. Once the transaction is reached its conclusion, the request will end up with a final status.
Definition at line 441 of file nc_trans.cc.
Referenced by transactionOutcomeString().
std::string isc::d2::NameChangeTransaction::getRequestId | ( | ) | const |
Fetches the request id that identifies this transaction.
This is a wrapper around getRequestId from the NCR which currently returns DHCID. In the future we may include a distinct request id. The primary purpose of this function is to provide a consistent way to identify requests for logging purposes.
Definition at line 436 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), onModelFailure(), operator()(), isc::d2::CheckExistsAddTransaction::processAddFailedHandler(), isc::d2::NameAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddFailedHandler(), isc::d2::CheckExistsAddTransaction::processAddOkHandler(), isc::d2::NameAddTransaction::processAddOkHandler(), isc::d2::SimpleAddTransaction::processAddOkHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddOkHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveFailedHandler(), isc::d2::NameRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveFailedHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveOkHandler(), isc::d2::NameRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveOkHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), sendUpdate(), and startTransaction().
bool isc::d2::NameChangeTransaction::getReverseChangeCompleted | ( | ) | const |
Returns whether the reverse change has completed or not.
The value returned is only meaningful if the NameChangeRequest calls for a reverse change to be done. The value returned indicates if reverse change has been completed successfully.
Definition at line 564 of file nc_trans.cc.
Referenced by transactionOutcomeString().
DdnsDomainPtr & isc::d2::NameChangeTransaction::getReverseDomain | ( | ) |
Fetches the reverse DdnsDomain.
Definition at line 451 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::NameRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveRevPtrsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::NameAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceRevPtrsRequest(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler().
const TransactionKey & isc::d2::NameChangeTransaction::getTransactionKey | ( | ) | const |
Fetches the unique key that identifies this transaction.
Transactions are uniquely identified by a TransactionKey. Currently this is wrapper around a D2Dhcid.
Definition at line 431 of file nc_trans.cc.
size_t isc::d2::NameChangeTransaction::getUpdateAttempts | ( | ) | const |
Fetches the update attempt count for the current update.
Definition at line 569 of file nc_trans.cc.
|
protected |
Initializes server selection from the given DDNS domain.
Method prepares internal data to conduct server selection from the list of servers supplied by the given domain. This method should be called when a transaction is ready to begin selecting servers from a new list. Typically this will be prior to starting the updates for a given DNS direction.
domain | is the domain from which server selection is to be conducted. |
Definition at line 456 of file nc_trans.cc.
References isc_throw.
Referenced by isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler().
|
protectedvirtual |
Handler for fatal model execution errors.
This handler is called by the StateModel implementation when the model execution encounters a model violation: attempt to call an unmapped state, an event not valid for the current state, or an uncaught exception thrown during a state handler invocation. When such an error occurs the transaction is deemed inoperable, and further model execution cannot be performed. It marks the transaction as failed by setting the NCR status to dhcp_ddns::ST_FAILED
explanation | is text detailing the error |
Reimplemented from isc::util::StateModel.
Definition at line 279 of file nc_trans.cc.
References isc::d2::d2_to_dns_logger, isc::d2::DHCP_DDNS_STATE_MODEL_UNEXPECTED_ERROR, getRequestId(), LOG_ERROR, setNcrStatus(), and isc::dhcp_ddns::ST_FAILED.
|
virtual |
Serves as the DNSClient IO completion event handler.
This is the implementation of the method inherited by our derivation from DNSClient::Callback. When the DNSClient completes an update it invokes this method as the completion handler. This method stores the given status and invokes runStateModel() with an event value of IO_COMPLETED_EVT.
status | is the outcome of the DNS update packet exchange. This method is exception safe. |
Implements isc::d2::DNSClient::Callback.
Definition at line 121 of file nc_trans.cc.
References isc::d2::d2_to_dns_logger, isc::log::DBGLVL_TRACE_DETAIL, isc::d2::DHCP_DDNS_UPDATE_RESPONSE_RECEIVED, getRequestId(), IO_COMPLETED_EVT, LOG_DEBUG, responseString(), isc::util::StateModel::runModel(), and setDnsUpdateStatus().
|
protectedvirtual |
Creates a new DNS update request based on the given domain.
Constructs a new "empty", OUTBOUND, request with the message id set and zone section populated based on the given domain. It is declared virtual for test purposes.
NameChangeTransactionError | if request cannot be constructed. |
Definition at line 344 of file nc_trans.cc.
References isc::cryptolink::generateQid(), isc::dns::RRClass::IN(), isc_throw, and isc::Exception::what().
Referenced by isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveFwdRRsRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::NameRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveRevPtrsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceFwdAddressRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::NameAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddTransaction::buildReplaceRevPtrsRequest(), and isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceRevPtrsRequest().
|
protected |
Returns a string version of the current response status and rcode.
Renders a string containing the text label of current DNS update status and RCODE (if status is DNSClient::SUCCESS)
Definition at line 137 of file nc_trans.cc.
References getDnsUpdateResponse(), getDnsUpdateStatus(), isc::d2::DNSClient::INVALID_RESPONSE, isc::d2::DNSClient::IO_STOPPED, isc::d2::DNSClient::OTHER, isc::d2::DNSClient::SUCCESS, and isc::d2::DNSClient::TIMEOUT.
Referenced by operator()().
|
protected |
Determines the state and next event based on update attempts.
This method will post a next event of SERVER_SELECTED_EVT to the current state if the number of update attempts has not reached the maximum allowed.
If the maximum number of attempts has been reached, it will transition to the given state with a next event of SERVER_IO_ERROR_EVT.
fail_to_state | State to transition to if maximum attempts have been tried. |
Definition at line 287 of file nc_trans.cc.
References isc::util::StateModel::getCurrState(), MAX_UPDATE_TRIES_PER_SERVER, SERVER_IO_ERROR_EVT, SERVER_SELECTED_EVT, and isc::util::StateModel::transition().
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
|
protected |
Selects the next server in the current server list.
This method is used to iterate over the list of servers. If there are no more servers in the list, it returns false. Otherwise it sets the current server to the next server and creates a new DNSClient instance.
Definition at line 468 of file nc_trans.cc.
References selectTSIGKey(), and isc::d2::DNSClient::UDP.
Referenced by isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler().
|
protected |
Selects the TSIG key.
This method uses the current server and the select_key callout. When no TSIG key is selected the tsig_key_ pointer is null.
Definition at line 497 of file nc_trans.cc.
References isc::hooks::HooksManager::callCallouts(), isc::hooks::HooksManager::calloutsPresent(), isc::hooks::HooksManager::createCalloutHandle(), Hooks, and isc::hooks::CalloutHandle::NEXT_STEP_CONTINUE.
Referenced by selectNextServer().
|
protectedvirtual |
Send the update request to the current server.
This method increments the update attempt count and then passes the current update request to the DNSClient instance to be sent to the currently selected server. Since the send is asynchronous, the method posts NOP_EVT as the next event and then returns.
If tsig_key_ is not NULL, then the update will be conducted using the key to sign the request and verify the response, otherwise it will be conducted without TSIG.
comment | text to include in log detail |
If an exception occurs it will be logged and and the transaction will be failed.
Definition at line 193 of file nc_trans.cc.
References isc::d2::d2_to_dns_logger, isc::log::DBGLVL_TRACE_DETAIL, isc::d2::DHCP_DDNS_TRANS_SEND_ERROR, isc::d2::DHCP_DDNS_UPDATE_REQUEST_SENT, getRequestId(), LOG_DEBUG, LOG_ERROR, isc::util::StateModel::NOP_EVT, isc::util::StateModel::postNextEvent(), PROCESS_TRANS_FAILED_ST, isc::util::StateModel::transition(), and UPDATE_FAILED_EVT.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
|
protected |
Sets the update request packet to the given packet.
request | is the new request packet to assign. |
Definition at line 299 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::buildAddFwdAddressRequest(), isc::d2::NameAddTransaction::buildAddFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdAddressRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::NameRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveFwdRRsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveFwdRRsRequest(), isc::d2::CheckExistsRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::NameRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveTransaction::buildRemoveRevPtrsRequest(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::buildRemoveRevPtrsRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::NameAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddTransaction::buildReplaceFwdAddressRequest(), isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceFwdAddressRequest(), isc::d2::CheckExistsAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::NameAddTransaction::buildReplaceRevPtrsRequest(), isc::d2::SimpleAddTransaction::buildReplaceRevPtrsRequest(), and isc::d2::SimpleAddWithoutDHCIDTransaction::buildReplaceRevPtrsRequest().
|
protected |
Sets the update response packet to the given packet.
response | is the new response packet to assign. |
Definition at line 319 of file nc_trans.cc.
|
protected |
Sets the update status to the given status value.
status | is the new value for the update status. |
Definition at line 314 of file nc_trans.cc.
Referenced by operator()().
|
protected |
Sets the forward change completion flag to the given value.
value | is the new value to assign to the flag. |
Definition at line 329 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler().
|
protected |
Sets the status of the transaction's NameChangeRequest.
status | is the new value to assign to the NCR status. |
Definition at line 539 of file nc_trans.cc.
Referenced by onModelFailure(), isc::d2::CheckExistsAddTransaction::processAddFailedHandler(), isc::d2::NameAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddFailedHandler(), isc::d2::CheckExistsAddTransaction::processAddOkHandler(), isc::d2::NameAddTransaction::processAddOkHandler(), isc::d2::SimpleAddTransaction::processAddOkHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddOkHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveFailedHandler(), isc::d2::NameRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveFailedHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveOkHandler(), isc::d2::NameRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveOkHandler(), and startTransaction().
|
protected |
Sets the reverse change completion flag to the given value.
value | is the new value to assign to the flag. |
Definition at line 334 of file nc_trans.cc.
Referenced by isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), and isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler().
|
protected |
Sets the update attempt count to the given value.
value | is the new value to assign. |
Definition at line 339 of file nc_trans.cc.
void isc::d2::NameChangeTransaction::startTransaction | ( | ) |
Begins execution of the transaction.
This method invokes StateModel::startModel() with a value of READY_ST. This causes transaction's state model to attempt to begin execution with the state handler for READY_ST.
Definition at line 111 of file nc_trans.cc.
References isc::d2::d2_to_dns_logger, isc::log::DBGLVL_TRACE_DETAIL, isc::d2::DHCP_DDNS_STARTING_TRANSACTION, getRequestId(), LOG_DEBUG, READY_ST, setNcrStatus(), isc::dhcp_ddns::ST_PENDING, and isc::util::StateModel::startModel().
|
protected |
Returns a string version of transaction outcome.
Renders a string containing summarizes the outcome of the transaction. The information includes the overall status, the last event, whether not forward and reverse changes were done, as well as the NCR serviced.
Definition at line 171 of file nc_trans.cc.
References isc::util::StateModel::getEventLabel(), getForwardChangeCompleted(), getNcrStatus(), isc::util::StateModel::getNextEvent(), getReverseChangeCompleted(), and isc::dhcp_ddns::ST_COMPLETED.
Referenced by isc::d2::CheckExistsAddTransaction::processAddFailedHandler(), isc::d2::NameAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddFailedHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveFailedHandler(), isc::d2::NameRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveTransaction::processRemoveFailedHandler(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveFailedHandler().
|
protectedvirtual |
Validates the contents of the set of events.
This method verifies that the events defined by both the superclass and this class are defined. As with defineEvents, this method calls the superclass's implementation first, to verify events defined by it and then this implementation to verify events defined by NameChangeTransaction.
StateModelError | if an event value is undefined. |
Reimplemented from isc::util::StateModel.
Reimplemented in isc::d2::CheckExistsAddTransaction, isc::d2::CheckExistsRemoveTransaction, isc::d2::NameAddTransaction, isc::d2::NameRemoveTransaction, isc::d2::SimpleAddTransaction, isc::d2::SimpleAddWithoutDHCIDTransaction, isc::d2::SimpleRemoveTransaction, and isc::d2::SimpleRemoveWithoutDHCIDTransaction.
Definition at line 243 of file nc_trans.cc.
References isc::util::StateModel::getEvent(), IO_COMPLETED_EVT, NO_MORE_SERVERS_EVT, SELECT_SERVER_EVT, SERVER_IO_ERROR_EVT, SERVER_SELECTED_EVT, UPDATE_FAILED_EVT, UPDATE_OK_EVT, and isc::util::StateModel::verifyEvents().
Referenced by isc::d2::CheckExistsAddTransaction::verifyEvents(), isc::d2::CheckExistsRemoveTransaction::verifyEvents(), isc::d2::NameAddTransaction::verifyEvents(), isc::d2::NameRemoveTransaction::verifyEvents(), isc::d2::SimpleAddTransaction::verifyEvents(), isc::d2::SimpleAddWithoutDHCIDTransaction::verifyEvents(), isc::d2::SimpleRemoveTransaction::verifyEvents(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::verifyEvents().
|
protectedvirtual |
Validates the contents of the set of states.
This method verifies that the states defined by both the superclass and this class are defined. As with defineStates, this method calls the superclass's implementation first, to verify states defined by it and then this implementation to verify states defined by NameChangeTransaction.
StateModelError | if an event value is undefined. |
Reimplemented from isc::util::StateModel.
Reimplemented in isc::d2::CheckExistsAddTransaction, isc::d2::CheckExistsRemoveTransaction, isc::d2::NameAddTransaction, isc::d2::NameRemoveTransaction, isc::d2::SimpleAddTransaction, isc::d2::SimpleAddWithoutDHCIDTransaction, isc::d2::SimpleRemoveTransaction, and isc::d2::SimpleRemoveWithoutDHCIDTransaction.
Definition at line 266 of file nc_trans.cc.
References isc::util::StateModel::getStateInternal(), PROCESS_TRANS_FAILED_ST, PROCESS_TRANS_OK_ST, READY_ST, SELECTING_FWD_SERVER_ST, SELECTING_REV_SERVER_ST, and isc::util::StateModel::verifyStates().
Referenced by isc::d2::CheckExistsAddTransaction::verifyStates(), isc::d2::CheckExistsRemoveTransaction::verifyStates(), isc::d2::NameAddTransaction::verifyStates(), isc::d2::NameRemoveTransaction::verifyStates(), isc::d2::SimpleAddTransaction::verifyStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::verifyStates(), isc::d2::SimpleRemoveTransaction::verifyStates(), and isc::d2::SimpleRemoveWithoutDHCIDTransaction::verifyStates().
|
static |
Default time to assign to a single DNS update.
Definition at line 151 of file nc_trans.h.
|
static |
Issued when a DNS update packet exchange has completed.
This occurs whenever the DNSClient callback is invoked whether the exchange was successful or not.
Definition at line 130 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), defineEvents(), operator()(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), and verifyEvents().
|
static |
Maximum times to attempt a single update on a given server.
Definition at line 154 of file nc_trans.h.
Referenced by retryTransition().
|
static |
Value at which custom events in a derived class should begin.
Definition at line 144 of file nc_trans.h.
|
static |
Value at which custom states in a derived class should begin.
Definition at line 108 of file nc_trans.h.
|
static |
Issued when there are no more servers from which to select.
This occurs when none of the servers in the list can be reached to perform the update.
Definition at line 125 of file nc_trans.h.
Referenced by defineEvents(), isc::d2::CheckExistsAddTransaction::processAddFailedHandler(), isc::d2::NameAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddFailedHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveFailedHandler(), isc::d2::NameRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveFailedHandler(), isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler(), and verifyEvents().
|
static |
State which processes an unsuccessful transaction conclusion.
Definition at line 105 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::defineStates(), isc::d2::NameAddTransaction::defineStates(), isc::d2::NameRemoveTransaction::defineStates(), isc::d2::SimpleAddTransaction::defineStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineStates(), isc::d2::SimpleRemoveTransaction::defineStates(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler(), sendUpdate(), and verifyStates().
|
static |
State which processes successful transaction conclusion.
Definition at line 102 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::defineStates(), isc::d2::NameAddTransaction::defineStates(), isc::d2::NameRemoveTransaction::defineStates(), isc::d2::SimpleAddTransaction::defineStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineStates(), isc::d2::SimpleRemoveTransaction::defineStates(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), and verifyStates().
|
static |
State from which a transaction is started.
Definition at line 83 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::defineStates(), isc::d2::NameAddTransaction::defineStates(), isc::d2::NameRemoveTransaction::defineStates(), isc::d2::SimpleAddTransaction::defineStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineStates(), isc::d2::SimpleRemoveTransaction::defineStates(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineStates(), startTransaction(), and verifyStates().
|
static |
Issued when a server needs to be selected.
Definition at line 113 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), defineEvents(), isc::d2::CheckExistsAddTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::readyHandler(), isc::d2::NameAddTransaction::readyHandler(), isc::d2::NameRemoveTransaction::readyHandler(), isc::d2::SimpleAddTransaction::readyHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::readyHandler(), isc::d2::SimpleRemoveTransaction::readyHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler(), and verifyEvents().
|
static |
State in which forward DNS server selection is done.
Within this state, the actual selection of the next forward server to use is conducted. Upon conclusion of this state the next server is either selected or it should transition out with NO_MORE_SERVERS_EVT event.
Definition at line 91 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::defineStates(), isc::d2::NameAddTransaction::defineStates(), isc::d2::NameRemoveTransaction::defineStates(), isc::d2::SimpleAddTransaction::defineStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineStates(), isc::d2::SimpleRemoveTransaction::defineStates(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineStates(), isc::d2::CheckExistsAddTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::readyHandler(), isc::d2::NameAddTransaction::readyHandler(), isc::d2::NameRemoveTransaction::readyHandler(), isc::d2::SimpleAddTransaction::readyHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::readyHandler(), isc::d2::SimpleRemoveTransaction::readyHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), and verifyStates().
|
static |
State in which reverse DNS server selection is done.
Within this state, the actual selection of the next reverse server to use is conducted. Upon conclusion of this state the next server is either selected or it should transition out with NO_MORE_SERVERS_EVT event.
Definition at line 99 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::defineStates(), isc::d2::CheckExistsRemoveTransaction::defineStates(), isc::d2::NameAddTransaction::defineStates(), isc::d2::NameRemoveTransaction::defineStates(), isc::d2::SimpleAddTransaction::defineStates(), isc::d2::SimpleAddWithoutDHCIDTransaction::defineStates(), isc::d2::SimpleRemoveTransaction::defineStates(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::defineStates(), isc::d2::CheckExistsAddTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::readyHandler(), isc::d2::NameAddTransaction::readyHandler(), isc::d2::NameRemoveTransaction::readyHandler(), isc::d2::SimpleAddTransaction::readyHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::readyHandler(), isc::d2::SimpleRemoveTransaction::readyHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::readyHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), and verifyStates().
|
static |
Issued when an update fails due to an IO error.
Definition at line 119 of file nc_trans.h.
Referenced by defineEvents(), isc::d2::CheckExistsRemoveTransaction::processRemoveFailedHandler(), isc::d2::NameRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveFailedHandler(), retryTransition(), isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler(), and verifyEvents().
|
static |
Issued when a server has been selected.
Definition at line 116 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), defineEvents(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), retryTransition(), isc::d2::CheckExistsAddTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingFwdServerHandler(), isc::d2::NameAddTransaction::selectingFwdServerHandler(), isc::d2::NameRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddTransaction::selectingFwdServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveTransaction::selectingFwdServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingFwdServerHandler(), isc::d2::CheckExistsAddTransaction::selectingRevServerHandler(), isc::d2::CheckExistsRemoveTransaction::selectingRevServerHandler(), isc::d2::NameAddTransaction::selectingRevServerHandler(), isc::d2::NameRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleAddTransaction::selectingRevServerHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveTransaction::selectingRevServerHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::selectingRevServerHandler(), and verifyEvents().
|
static |
Issued when the attempted update fails to complete.
This occurs when an DNS update packet fails to process. The nature of the failure is given by the DNSClient return status and the response packet (if one was received).
Definition at line 141 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), defineEvents(), isc::d2::CheckExistsAddTransaction::processAddFailedHandler(), isc::d2::NameAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddTransaction::processAddFailedHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddFailedHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveFailedHandler(), isc::d2::NameRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveTransaction::processRemoveFailedHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveFailedHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), sendUpdate(), and verifyEvents().
|
static |
Issued when the attempted update successfully completed.
This occurs when an DNS update packet was successfully processed by the server.
Definition at line 135 of file nc_trans.h.
Referenced by isc::d2::CheckExistsAddTransaction::addingFwdAddrsHandler(), isc::d2::NameAddTransaction::addingFwdAddrsHandler(), defineEvents(), isc::d2::CheckExistsAddTransaction::processAddOkHandler(), isc::d2::NameAddTransaction::processAddOkHandler(), isc::d2::SimpleAddTransaction::processAddOkHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::processAddOkHandler(), isc::d2::CheckExistsRemoveTransaction::processRemoveOkHandler(), isc::d2::NameRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveTransaction::processRemoveOkHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::processRemoveOkHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdAddrsHandler(), isc::d2::NameRemoveTransaction::removingFwdAddrsHandler(), isc::d2::CheckExistsRemoveTransaction::removingFwdRRsHandler(), isc::d2::NameRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveTransaction::removingFwdRRsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingFwdRRsHandler(), isc::d2::CheckExistsRemoveTransaction::removingRevPtrsHandler(), isc::d2::NameRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveTransaction::removingRevPtrsHandler(), isc::d2::SimpleRemoveWithoutDHCIDTransaction::removingRevPtrsHandler(), isc::d2::CheckExistsAddTransaction::replacingFwdAddrsHandler(), isc::d2::NameAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddTransaction::replacingFwdAddrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingFwdAddrsHandler(), isc::d2::CheckExistsAddTransaction::replacingRevPtrsHandler(), isc::d2::NameAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddTransaction::replacingRevPtrsHandler(), isc::d2::SimpleAddWithoutDHCIDTransaction::replacingRevPtrsHandler(), and verifyEvents().