// Highly unlikely, but lets Report it but go on
LOG_ERROR(dhcp4_logger, DHCP4_SRV_D2STOP_ERROR).arg(ex.what());
}
+
IfaceMgr::instance().closeSockets();
}
has failed. As a result, the server will exit. The reason for the
failure is given within the message.
+% DHCP6_SRV_D2STOP_ERROR error stopping IO with DHCP_DDNS during shutdown: %1
+This error message indicates that during shutdown, an erro occurred while
+stopping IO between the DHCPv6 server and the DHCP_DDNS server. This is
+probably due to a programmatic error is not likely to impact either server
+upon restart. The reason for the failure is given within the message.
+
% DHCP6_STANDALONE skipping message queue, running standalone
This is a debug message indicating that the IPv6 server is running in
standalone mode, not connected to the message queue. Standalone mode
}
Dhcpv6Srv::~Dhcpv6Srv() {
+ try {
+ stopD2();
+ } catch(const std::exception& ex) {
+ // Highly unlikely, but lets Report it but go on
+ LOG_ERROR(dhcp6_logger, DHCP6_SRV_D2STOP_ERROR).arg(ex.what());
+ }
+
IfaceMgr::instance().closeSockets();
LeaseMgrFactory::destroy();
}
}
+void
+Dhcpv6Srv::stopD2() {
+ D2ClientMgr& d2_mgr = CfgMgr::instance().getD2ClientMgr();
+ if (d2_mgr.ddnsEnabled()) {
+ // Updates are enabled, so lets stop the sender
+ d2_mgr.stopSender();
+ }
+}
+
void
Dhcpv6Srv::d2ClientErrorHandler(const
dhcp_ddns::NameChangeSender::Result result,
/// D2ClientErrors. This method does not catch exceptions.
void startD2();
+ /// @brief Stops DHCP_DDNS client IO if DDNS updates are enabled.
+ ///
+ /// If updates are enabled, it instructs the D2ClientMgr singleton to
+ /// leave send mode. If D2ClientMgr encounters errors it may throw
+ /// D2ClientErrors. This method does not catch exceptions.
+ void stopD2();
+
/// @brief Implements the error handler for DHCP_DDNS IO errors
///
/// Invoked when a NameChangeRequest send to kea-dhcp-ddns completes with
{
\"subnet\": \"2001:db8:1::/64\",
\"pools\": [ { \"pool\": \"2001:db8:1::10-2001:db8:1::100\" } ]
- } ]
+ } ],
+ \"dhcp-ddns\": {
+ \"enable-updates\": true,
+ \"qualifying-suffix\": \"\"
+ }
},
\"Logging\":