From: Marcin Siodelski Date: Thu, 31 Aug 2017 15:02:17 +0000 (+0200) Subject: [5305] Use weak pointer to reference a network from subnet. X-Git-Tag: trac5073a_base~11^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9094a926dd4989772dbfe8dfe2ab7a377fa9ddb;p=thirdparty%2Fkea.git [5305] Use weak pointer to reference a network from subnet. --- diff --git a/src/lib/dhcpsrv/network.h b/src/lib/dhcpsrv/network.h index a5590522c9..3b8beaa63b 100644 --- a/src/lib/dhcpsrv/network.h +++ b/src/lib/dhcpsrv/network.h @@ -12,6 +12,7 @@ #include #include #include +#include #include namespace isc { @@ -95,6 +96,9 @@ protected: /// @brief Pointer to the @ref Network object. typedef boost::shared_ptr NetworkPtr; +/// @brief Weak pointer to the @ref Network object. +typedef boost::weak_ptr WeakNetworkPtr; + } // end of namespace isc::dhcp } // end of namespace isc diff --git a/src/lib/dhcpsrv/subnet.h b/src/lib/dhcpsrv/subnet.h index 1d860fdc07..75d3fac1c3 100644 --- a/src/lib/dhcpsrv/subnet.h +++ b/src/lib/dhcpsrv/subnet.h @@ -352,7 +352,7 @@ public: template void getSharedNetwork(SharedNetworkPtrType& shared_network) const { shared_network = boost::dynamic_pointer_cast< - typename SharedNetworkPtrType::element_type>(shared_network_); + typename SharedNetworkPtrType::element_type>(shared_network_.lock()); } private: @@ -538,7 +538,8 @@ protected: /// See @ref HRMode type for details. HRMode host_reservation_mode_; - NetworkPtr shared_network_; + /// @brief Pointer to a shared network that subnet belongs to. + WeakNetworkPtr shared_network_; }; /// @brief A generic pointer to either Subnet4 or Subnet6 object