]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[master] Corrected valgrind complaint in dhcpsrv unittest.
authorThomas Markwalder <tmark@isc.org>
Wed, 12 Feb 2014 13:51:48 +0000 (08:51 -0500)
committerThomas Markwalder <tmark@isc.org>
Wed, 12 Feb 2014 13:51:48 +0000 (08:51 -0500)
src/lib/dhcpsrv/d2_client.h
src/lib/dhcpsrv/tests/d2_udp_unittest.cc

index 639747a9d81800c51df09e82d62651daf651f283..7c0bd0d14c5151c117e6f58cfa17acbf4eeea6a5 100644 (file)
@@ -382,6 +382,12 @@ public:
     /// supplied as the manager cannot know how an application should deal
     /// with send failures.
     /// @param io_service IOService to be used for sender IO event processing
+    /// @warning It is up to the invoking layer to ensure the io_service
+    /// instance used outlives the D2ClientMgr send mode. When the send mode
+    /// is exited, either expliclity by callind stopSender() or implicitly
+    /// through D2CLientMgr destruction, any ASIO objects such as sockets or
+    /// timers will be closed and released.  If the io_service goes out of scope
+    /// first this behavior could be unpredictable.
     ///
     /// @throw D2ClientError if sender instance is null. Underlying layer
     /// may throw NCRSenderExceptions exceptions.
index 66d21254ac7bec97adc476fa1f801a5011689855..6969b28512e339901783ebebe008b03764933769 100644 (file)
@@ -319,6 +319,11 @@ TEST_F(D2ClientMgrTest, udpSendExternalIOService) {
 
     // select_fd should evaluate to not ready to read.
     selectCheck(false);
+
+    // Explicitly stop the sender. This ensures the sender's
+    // ASIO socket is closed prior to the local io_service
+    // instance goes out of scope.
+    ASSERT_NO_THROW(stopSender());
 }
 
 /// @brief Checks that D2ClientMgr invokes the client error handler