]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#892] fixed compilation
authorRazvan Becheriu <razvan@isc.org>
Thu, 6 Feb 2020 10:18:53 +0000 (12:18 +0200)
committerRazvan Becheriu <razvan@isc.org>
Fri, 21 Feb 2020 15:41:31 +0000 (17:41 +0200)
src/bin/dhcp4/dhcp4_srv.cc
src/bin/dhcp4/dhcp4_srv.h
src/bin/dhcp6/dhcp6_srv.cc
src/bin/dhcp6/dhcp6_srv.h

index ba48bd0d4e9703b0911727bf7b4fb3d560d169d0..2abe73944034df9e4c518ad7688c9bc657881ca7 100644 (file)
@@ -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<void()> CallBack;
+                boost::shared_ptr<CallBack> call_back =
+                    boost::make_shared<CallBack>(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);
index 6789837babc9906c28d50985d825a2f8a06ff8a6..dea88ecc989cbec5757d0e3226a039d99639a83d 100644 (file)
@@ -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
index b657c4ed1e9d366b48c6d30120700056c175685e..4a7c2b6631803c138206c7af7b2bf95446017429 100644 (file)
@@ -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<void()> CallBack;
+                boost::shared_ptr<CallBack> call_back =
+                    boost::make_shared<CallBack>(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);
index 17c3121f7e96fe2615db7dda370a4f0b5c94174d..56123c90c1577b3322dc8305f30ca4b8f1e9e18e 100644 (file)
@@ -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