2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-03 15:35:17 +00:00

[5564] Changes after review:

- dumpPackets renamed to discardPackets
 - added missing comments
This commit is contained in:
Tomek Mrugalski
2018-05-16 14:42:55 +02:00
parent 5b9b5e26f0
commit 92e83eb2c8
7 changed files with 18 additions and 10 deletions

View File

@@ -460,7 +460,7 @@ Dhcpv4Srv::Dhcpv4Srv(uint16_t port, const bool use_bcast,
Dhcpv4Srv::~Dhcpv4Srv() { Dhcpv4Srv::~Dhcpv4Srv() {
// Discard any cached packets or parked packets // Discard any cached packets or parked packets
dumpPackets(); discardPackets();
try { try {
stopD2(); stopD2();
@@ -3589,7 +3589,7 @@ int Dhcpv4Srv::getHookIndexLease4Decline() {
return (Hooks.hook_index_lease4_decline_); return (Hooks.hook_index_lease4_decline_);
} }
void Dhcpv4Srv::dumpPackets() { void Dhcpv4Srv::discardPackets() {
// Clear any packets held by the callhout handle store and // Clear any packets held by the callhout handle store and
// all parked packets // all parked packets
isc::dhcp::Pkt4Ptr pkt4ptr_empty; isc::dhcp::Pkt4Ptr pkt4ptr_empty;

View File

@@ -331,7 +331,7 @@ public:
dhcp_ddns::NameChangeRequestPtr& ncr); dhcp_ddns::NameChangeRequestPtr& ncr);
/// @brief Discard all in-progress packets /// @brief Discard all in-progress packets
void dumpPackets(); void discardPackets();
protected: protected:

View File

@@ -291,7 +291,7 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set,
// Remove any existing timers. // Remove any existing timers.
if (!check_only) { if (!check_only) {
TimerMgr::instance()->unregisterTimers(); TimerMgr::instance()->unregisterTimers();
server.dumpPackets(); server.discardPackets();
} }
// Revert any runtime option definitions configured so far and not committed. // Revert any runtime option definitions configured so far and not committed.

View File

@@ -218,7 +218,7 @@ Dhcpv6Srv::Dhcpv6Srv(uint16_t port)
} }
Dhcpv6Srv::~Dhcpv6Srv() { Dhcpv6Srv::~Dhcpv6Srv() {
dumpPackets(); discardPackets();
try { try {
stopD2(); stopD2();
} catch(const std::exception& ex) { } catch(const std::exception& ex) {
@@ -3762,11 +3762,11 @@ Dhcpv6Srv::requestedInORO(const Pkt6Ptr& query, const uint16_t code) const {
return (false); return (false);
} }
void Dhcpv6Srv::dumpPackets() { void Dhcpv6Srv::discardPackets() {
// Dump all of our current packets, anything that is mid-stream // Dump all of our current packets, anything that is mid-stream
isc::dhcp::Pkt6Ptr pkt6ptr_empty; isc::dhcp::Pkt6Ptr pkt6ptr_empty;
isc::dhcp::getCalloutHandle(pkt6ptr_empty); isc::dhcp::getCalloutHandle(pkt6ptr_empty);
ServerHooks::getServerHooks().getParkingLotsPtr()->clear(); HooksManager::clearParkingLots();
} }
}; };

View File

@@ -174,10 +174,10 @@ public:
NameChangeSender::Result result, NameChangeSender::Result result,
dhcp_ddns::NameChangeRequestPtr& ncr); 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 /// Clears the call_handle store and packet parking lots
/// of all packets. Called during reconfigure and shutdown. /// of all packets. Called during reconfigure and shutdown.
void dumpPackets(); void discardPackets();
protected: protected:

View File

@@ -389,7 +389,7 @@ configureDhcp6Server(Dhcpv6Srv& server, isc::data::ConstElementPtr config_set,
// Remove any existing timers. // Remove any existing timers.
if (!check_only) { if (!check_only) {
TimerMgr::instance()->unregisterTimers(); TimerMgr::instance()->unregisterTimers();
server.dumpPackets(); server.discardPackets();
} }
// Revert any runtime option definitions configured so far and not committed. // Revert any runtime option definitions configured so far and not committed.

View File

@@ -310,6 +310,11 @@ public:
getHooksManager().referenceInternal(hook_name, parked_object); 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() { static void clearParkingLots() {
getHooksManager().clearParkingLotsInternal(); getHooksManager().clearParkingLotsInternal();
} }
@@ -371,6 +376,9 @@ private:
getParkingLotPtr(hook_name)->reference(parked_object); getParkingLotPtr(hook_name)->reference(parked_object);
} }
/// @brief Clears all pointers stored in parking lots.
///
/// See @ref clearParkingLots for explanation.
void clearParkingLotsInternal() { void clearParkingLotsInternal() {
ServerHooks::getServerHooks().getParkingLotsPtr()->clear(); ServerHooks::getServerHooks().getParkingLotsPtr()->clear();
} }