diff --git a/webrtc/base/virtualsocketserver.cc b/webrtc/base/virtualsocketserver.cc index 59587bb845..35e6579eb4 100644 --- a/webrtc/base/virtualsocketserver.cc +++ b/webrtc/base/virtualsocketserver.cc @@ -723,7 +723,9 @@ int VirtualSocketServer::Connect(VirtualSocket* socket, bool VirtualSocketServer::Disconnect(VirtualSocket* socket) { if (socket) { // Remove the mapping. - msg_queue_->Post(socket, MSG_ID_DISCONNECT); + // Posted at network_delay_ + 1 so it is scheduled after any + // pending packets. + msg_queue_->PostAt(network_delay_ + 1, socket, MSG_ID_DISCONNECT); return true; } return false; diff --git a/webrtc/p2p/base/turnport_unittest.cc b/webrtc/p2p/base/turnport_unittest.cc index da2c6b94ac..224521d3b5 100644 --- a/webrtc/p2p/base/turnport_unittest.cc +++ b/webrtc/p2p/base/turnport_unittest.cc @@ -771,7 +771,7 @@ TEST_F(TurnPortTest, TestTurnReleaseAllocation) { } // Test that a TURN TCP allocation is released when the port is closed. -TEST_F(TurnPortTest, DISABLED_TestTurnTCPReleaseAllocation) { +TEST_F(TurnPortTest, TestTurnTCPReleaseAllocation) { turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); CreateTurnPort(kTurnUsername, kTurnPassword, kTurnTcpProtoAddr); turn_port_->PrepareAddress();