Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit 5d55597

Browse files
Artem TitovCommit Bot
authored andcommitted
Add support for loopback route on emulated endpoints
Bug: b/172995851 Change-Id: I70b5ec6cd84784dcc452e8f96a02f4be849fa0f7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192920 Reviewed-by: Mirko Bonadei <[email protected]> Commit-Queue: Artem Titov <[email protected]> Cr-Commit-Position: refs/heads/master@{#32596}
1 parent 40e2a68 commit 5d55597

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

test/network/network_emulation.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,11 @@ void EmulatedEndpointImpl::SendPacket(const rtc::SocketAddress& from,
469469
packet.arrival_time, clock_->CurrentTime(), packet.to.ipaddr(),
470470
DataSize::Bytes(packet.ip_packet_size()), stats_gathering_mode_);
471471

472-
router_.OnPacketReceived(std::move(packet));
472+
if (packet.to.ipaddr() == peer_local_addr_) {
473+
OnPacketReceived(std::move(packet));
474+
} else {
475+
router_.OnPacketReceived(std::move(packet));
476+
}
473477
});
474478
}
475479

test/network/network_emulation_unittest.cc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,5 +554,19 @@ TEST_F(NetworkEmulationManagerThreeNodesRoutingTest,
554554
SendPacketsAndValidateDelivery();
555555
}
556556

557+
TEST(NetworkEmulationManagerTest, EndpointLoopback) {
558+
NetworkEmulationManagerImpl network_manager(TimeMode::kSimulated);
559+
auto endpoint = network_manager.CreateEndpoint(EmulatedEndpointConfig());
560+
561+
MockReceiver receiver;
562+
EXPECT_CALL(receiver, OnPacketReceived(::testing::_)).Times(1);
563+
ASSERT_EQ(endpoint->BindReceiver(80, &receiver), 80);
564+
565+
endpoint->SendPacket(rtc::SocketAddress(endpoint->GetPeerLocalAddress(), 80),
566+
rtc::SocketAddress(endpoint->GetPeerLocalAddress(), 80),
567+
"Hello");
568+
network_manager.time_controller()->AdvanceTime(TimeDelta::Seconds(1));
569+
}
570+
557571
} // namespace test
558572
} // namespace webrtc

0 commit comments

Comments
 (0)