From: Thomas Markwalder Date: Wed, 12 Feb 2014 13:51:48 +0000 (-0500) Subject: [master] Corrected valgrind complaint in dhcpsrv unittest. X-Git-Tag: bind10-1.2.0beta1-release~52 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3ccbb10693264fa527ce7fe82da1b6a4a569e7c8;p=thirdparty%2Fkea.git [master] Corrected valgrind complaint in dhcpsrv unittest. --- diff --git a/src/lib/dhcpsrv/d2_client.h b/src/lib/dhcpsrv/d2_client.h index 639747a9d8..7c0bd0d14c 100644 --- a/src/lib/dhcpsrv/d2_client.h +++ b/src/lib/dhcpsrv/d2_client.h @@ -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. diff --git a/src/lib/dhcpsrv/tests/d2_udp_unittest.cc b/src/lib/dhcpsrv/tests/d2_udp_unittest.cc index 66d21254ac..6969b28512 100644 --- a/src/lib/dhcpsrv/tests/d2_udp_unittest.cc +++ b/src/lib/dhcpsrv/tests/d2_udp_unittest.cc @@ -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