From: Razvan Becheriu Date: Thu, 6 Feb 2020 10:18:53 +0000 (+0200) Subject: [#892] fixed compilation X-Git-Tag: Kea-1.7.5~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e823054697ba12de2dc2ba9cff392bc96367bcad;p=thirdparty%2Fkea.git [#892] fixed compilation --- diff --git a/src/bin/dhcp4/dhcp4_srv.cc b/src/bin/dhcp4/dhcp4_srv.cc index ba48bd0d4e..2abe739440 100644 --- a/src/bin/dhcp4/dhcp4_srv.cc +++ b/src/bin/dhcp4/dhcp4_srv.cc @@ -1221,9 +1221,10 @@ Dhcpv4Srv::processPacket(Pkt4Ptr& query, Pkt4Ptr& rsp, bool allow_packet_park) { HooksManager::park("leases4_committed", query, [this, callout_handle, query, rsp]() mutable { if (Dhcpv4Srv::threadCount()) { - ThreadPool::WorkItemCallBack call_back = - std::bind(&Dhcpv4Srv::processPacketSendResponseNoThrow, - this, callout_handle, query, rsp); + typedef function CallBack; + boost::shared_ptr call_back = + boost::make_shared(std::bind(&Dhcpv4Srv::sendResponseNoThrow, + this, callout_handle, query, rsp)); pkt_thread_pool_.add(call_back); } else { processPacketPktSend(callout_handle, query, rsp); @@ -1242,8 +1243,8 @@ Dhcpv4Srv::processPacket(Pkt4Ptr& query, Pkt4Ptr& rsp, bool allow_packet_park) { } void -Dhcpv4Srv::processPacketSendResponseNoThrow(hooks::CalloutHandlePtr& callout_handle, - Pkt4Ptr& query, Pkt4Ptr& rsp) { +Dhcpv4Srv::sendResponseNoThrow(hooks::CalloutHandlePtr& callout_handle, + Pkt4Ptr& query, Pkt4Ptr& rsp) { try { processPacketPktSend(callout_handle, query, rsp); processPacketBufferSend(callout_handle, rsp); diff --git a/src/bin/dhcp4/dhcp4_srv.h b/src/bin/dhcp4/dhcp4_srv.h index 6789837bab..dea88ecc98 100644 --- a/src/bin/dhcp4/dhcp4_srv.h +++ b/src/bin/dhcp4/dhcp4_srv.h @@ -307,6 +307,14 @@ public: /// @param rsp A pointer to the response void processPacketAndSendResponseNoThrow(Pkt4Ptr& query, Pkt4Ptr& rsp); + /// @brief Process an unparked DHCPv4 packet and sends the response. + /// + /// @param callout_handle pointer to the callout handle. + /// @param query A pointer to the packet to be processed. + /// @param rsp A pointer to the response + void sendResponseNoThrow(hooks::CalloutHandlePtr& callout_handle, + Pkt4Ptr& query, Pkt4Ptr& rsp); + /// @brief Process a single incoming DHCPv4 packet. /// /// It verifies correctness of the passed packet, call per-type processXXX @@ -986,7 +994,6 @@ protected: void processPacketBufferSend(hooks::CalloutHandlePtr& callout_handle, Pkt4Ptr& rsp); - private: /// @public diff --git a/src/bin/dhcp6/dhcp6_srv.cc b/src/bin/dhcp6/dhcp6_srv.cc index b657c4ed1e..4a7c2b6631 100644 --- a/src/bin/dhcp6/dhcp6_srv.cc +++ b/src/bin/dhcp6/dhcp6_srv.cc @@ -980,9 +980,10 @@ Dhcpv6Srv::processPacket(Pkt6Ptr& query, Pkt6Ptr& rsp) { HooksManager::park("leases6_committed", query, [this, callout_handle, query, rsp]() mutable { if (Dhcpv6Srv::threadCount()) { - ThreadPool::WorkItemCallBack call_back = - std::bind(&Dhcpv6Srv::processPacketSendResponseNoThrow, - this, callout_handle, query, rsp); + typedef function CallBack; + boost::shared_ptr call_back = + boost::make_shared(std::bind(&Dhcpv6Srv::sendResponseNoThrow, + this, callout_handle, query, rsp)); pkt_thread_pool_.add(call_back); } else { processPacketPktSend(callout_handle, query, rsp); @@ -1001,8 +1002,8 @@ Dhcpv6Srv::processPacket(Pkt6Ptr& query, Pkt6Ptr& rsp) { } void -Dhcpv6Srv::processPacketSendResponseNoThrow(hooks::CalloutHandlePtr& callout_handle, - Pkt6Ptr& query, Pkt6Ptr& rsp) { +Dhcpv6Srv::sendResponseNoThrow(hooks::CalloutHandlePtr& callout_handle, + Pkt6Ptr& query, Pkt6Ptr& rsp) { try { processPacketPktSend(callout_handle, query, rsp); processPacketBufferSend(callout_handle, rsp); diff --git a/src/bin/dhcp6/dhcp6_srv.h b/src/bin/dhcp6/dhcp6_srv.h index 17c3121f7e..56123c90c1 100644 --- a/src/bin/dhcp6/dhcp6_srv.h +++ b/src/bin/dhcp6/dhcp6_srv.h @@ -174,6 +174,14 @@ public: /// @param rsp A pointer to the response void processPacketAndSendResponseNoThrow(Pkt6Ptr& query, Pkt6Ptr& rsp); + /// @brief Process an unparked DHCPv6 packet and sends the response. + /// + /// @param callout_handle pointer to the callout handle. + /// @param query A pointer to the packet to be processed. + /// @param rsp A pointer to the response + void sendResponseNoThrow(hooks::CalloutHandlePtr& callout_handle, + Pkt6Ptr& query, Pkt6Ptr& rsp); + /// @brief Process a single incoming DHCPv6 packet. /// /// It verifies correctness of the passed packet, call per-type processXXX