Skip to content

Commit

Permalink
Merge pull request #25 from Unit-X/star-1269-fix-vector-size-bug-in-g…
Browse files Browse the repository at this point in the history
…etActiveClientSockets

STAR-1269: Fix allocation bug of client sockets vector
  • Loading branch information
permobergedge authored May 6, 2024
2 parents ea48234 + 86a4158 commit c7d91e9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
3 changes: 2 additions & 1 deletion SRTNet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,8 @@ std::vector<std::pair<SRTSOCKET, std::shared_ptr<SRTNet::NetworkConnection>>> SR
std::vector<SRTSOCKET> SRTNet::getActiveClientSockets() const {
std::lock_guard<std::mutex> lock(mClientListMtx);

std::vector<SRTSOCKET> clientSockets(mClientList.size());
std::vector<SRTSOCKET> clientSockets;
clientSockets.reserve(mClientList.size());
for (const auto& [socket, networkConnection] : mClientList) {
clientSockets.push_back(socket);
}
Expand Down
17 changes: 9 additions & 8 deletions test/TestSrt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,8 @@ TEST(TestSrt, StartStop) {
ASSERT_TRUE(successfulWait) << "Timeout waiting for client to connect";
}

waitUntil([&]() { return !server.getActiveClients().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10));
ASSERT_TRUE(waitUntil([&]() { return !server.getActiveClientSockets().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10)));

const auto activeClients = server.getActiveClients();
size_t nClients = activeClients.size();
Expand Down Expand Up @@ -466,8 +466,8 @@ TEST_F(TestSRTFixture, SingleSender) {
ASSERT_TRUE(mClient.isConnectedToServer());

ASSERT_TRUE(waitForClientToConnect(std::chrono::seconds(2)));
waitUntil([&]() { return !mServer.getActiveClients().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10));
ASSERT_TRUE(waitUntil([&]() { return !mServer.getActiveClientSockets().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10)));

auto activeClients = mServer.getActiveClients();
size_t numberOfClients = activeClients.size();
Expand Down Expand Up @@ -513,8 +513,8 @@ TEST_F(TestSRTFixture, BindAddressForCaller) {


ASSERT_TRUE(waitForClientToConnect(std::chrono::seconds(2)));
waitUntil([&]() { return !mServer.getActiveClients().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10));
ASSERT_TRUE(waitUntil([&]() { return !mServer.getActiveClientSockets().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10)));

const auto activeClients = mServer.getActiveClients();
size_t numberOfClients = activeClients.size();
Expand Down Expand Up @@ -561,8 +561,9 @@ TEST_F(TestSRTFixture, AutomaticPortSelection) {
EXPECT_GT(clientIPAndPort.second, 1024); // We expect it won't pick a privileged port
EXPECT_NE(clientIPAndPort.second, serverIPAndPort.second);

waitUntil([&]() { return !mServer.getActiveClients().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10));
ASSERT_TRUE(waitUntil([&]() { return !mServer.getActiveClientSockets().empty(); },
std::chrono::seconds(1), std::chrono::milliseconds(10)));

const auto activeClients = mServer.getActiveClients();
size_t nClients = activeClients.size();

Expand Down

0 comments on commit c7d91e9

Please sign in to comment.