Wire up packet_id / send time callbacks to webrtc via libjingle.
BUG=webrtc:4173
Review URL: https://codereview.webrtc.org/1363573002
Cr-Commit-Position: refs/heads/master@{#10289}
diff --git a/webrtc/p2p/base/dtlstransportchannel_unittest.cc b/webrtc/p2p/base/dtlstransportchannel_unittest.cc
index 460e294..07e3b87 100644
--- a/webrtc/p2p/base/dtlstransportchannel_unittest.cc
+++ b/webrtc/p2p/base/dtlstransportchannel_unittest.cc
@@ -33,6 +33,7 @@
static const char kIcePwd1[] = "TESTICEPWD00000000000001";
static const size_t kPacketNumOffset = 8;
static const size_t kPacketHeaderLen = 12;
+static const int kFakePacketId = 0x1234;
static bool IsRtpLeadByte(uint8_t b) {
return ((b & 0xC0) == 0x80);
@@ -86,6 +87,8 @@
&DtlsTestClient::OnTransportChannelWritableState);
channel->SignalReadPacket.connect(this,
&DtlsTestClient::OnTransportChannelReadPacket);
+ channel->SignalSentPacket.connect(
+ this, &DtlsTestClient::OnTransportChannelSentPacket);
channels_.push_back(channel);
// Hook the raw packets so that we can verify they are encrypted.
@@ -259,6 +262,7 @@
// Only set the bypass flag if we've activated DTLS.
int flags = (certificate_ && srtp) ? cricket::PF_SRTP_BYPASS : 0;
rtc::PacketOptions packet_options;
+ packet_options.packet_id = kFakePacketId;
int rv = channels_[channel]->SendPacket(
packet.get(), size, packet_options, flags);
ASSERT_GT(rv, 0);
@@ -338,6 +342,13 @@
ASSERT_EQ(expected_flags, flags);
}
+ void OnTransportChannelSentPacket(cricket::TransportChannel* channel,
+ const rtc::SentPacket& sent_packet) {
+ sent_packet_ = sent_packet;
+ }
+
+ rtc::SentPacket sent_packet() const { return sent_packet_; }
+
// Hook into the raw packet stream to make sure DTLS packets are encrypted.
void OnFakeTransportChannelReadPacket(cricket::TransportChannel* channel,
const char* data, size_t size,
@@ -378,6 +389,7 @@
bool negotiated_dtls_;
bool received_dtls_client_hello_;
bool received_dtls_server_hello_;
+ rtc::SentPacket sent_packet_;
};
@@ -558,6 +570,15 @@
TestTransfer(0, 1000, 100, false);
}
+// Connect without DTLS, and transfer some data.
+TEST_F(DtlsTransportChannelTest, TestOnSentPacket) {
+ ASSERT_TRUE(Connect());
+ EXPECT_EQ(client1_.sent_packet().send_time_ms, -1);
+ TestTransfer(0, 1000, 100, false);
+ EXPECT_EQ(kFakePacketId, client1_.sent_packet().packet_id);
+ EXPECT_GE(client1_.sent_packet().send_time_ms, 0);
+}
+
// Create two channels without DTLS, and transfer some data.
TEST_F(DtlsTransportChannelTest, TestTransferTwoChannels) {
SetChannelCount(2);