Dhcpv4Srv::~Dhcpv4Srv() {
// Discard any cached packets or parked packets
- dumpPackets();
+ discardPackets();
try {
stopD2();
return (Hooks.hook_index_lease4_decline_);
}
-void Dhcpv4Srv::dumpPackets() {
+void Dhcpv4Srv::discardPackets() {
// Clear any packets held by the callhout handle store and
// all parked packets
isc::dhcp::Pkt4Ptr pkt4ptr_empty;
dhcp_ddns::NameChangeRequestPtr& ncr);
/// @brief Discard all in-progress packets
- void dumpPackets();
+ void discardPackets();
protected:
// Remove any existing timers.
if (!check_only) {
TimerMgr::instance()->unregisterTimers();
- server.dumpPackets();
+ server.discardPackets();
}
// Revert any runtime option definitions configured so far and not committed.
}
Dhcpv6Srv::~Dhcpv6Srv() {
- dumpPackets();
+ discardPackets();
try {
stopD2();
} catch(const std::exception& ex) {
return (false);
}
-void Dhcpv6Srv::dumpPackets() {
+void Dhcpv6Srv::discardPackets() {
// Dump all of our current packets, anything that is mid-stream
isc::dhcp::Pkt6Ptr pkt6ptr_empty;
isc::dhcp::getCalloutHandle(pkt6ptr_empty);
- ServerHooks::getServerHooks().getParkingLotsPtr()->clear();
+ HooksManager::clearParkingLots();
}
};
NameChangeSender::Result result,
dhcp_ddns::NameChangeRequestPtr& ncr);
- /// @brief Dumps cached and parked packets
+ /// @brief Discards cached and parked packets
/// Clears the call_handle store and packet parking lots
/// of all packets. Called during reconfigure and shutdown.
- void dumpPackets();
+ void discardPackets();
protected:
// Remove any existing timers.
if (!check_only) {
TimerMgr::instance()->unregisterTimers();
- server.dumpPackets();
+ server.discardPackets();
}
// Revert any runtime option definitions configured so far and not committed.
getHooksManager().referenceInternal(hook_name, parked_object);
}
+ /// @brief Clears any parking packets.
+ ///
+ /// This method should be called during reconfiguration to ensure there
+ /// are no dangling pointers that could possibly prevent the library
+ /// from being unloaded.
static void clearParkingLots() {
getHooksManager().clearParkingLotsInternal();
}
getParkingLotPtr(hook_name)->reference(parked_object);
}
+ /// @brief Clears all pointers stored in parking lots.
+ ///
+ /// See @ref clearParkingLots for explanation.
void clearParkingLotsInternal() {
ServerHooks::getServerHooks().getParkingLotsPtr()->clear();
}