| Index: webrtc/p2p/base/port_unittest.cc
|
| diff --git a/webrtc/p2p/base/port_unittest.cc b/webrtc/p2p/base/port_unittest.cc
|
| index be5ced97c0b0085170c30dc0715fb3998fb348e5..ddc6d986ab7058026ce6a87b4d02a16672c73b36 100644
|
| --- a/webrtc/p2p/base/port_unittest.cc
|
| +++ b/webrtc/p2p/base/port_unittest.cc
|
| @@ -18,6 +18,7 @@
|
| #include "webrtc/p2p/base/transport.h"
|
| #include "webrtc/p2p/base/turnport.h"
|
| #include "webrtc/base/arraysize.h"
|
| +#include "webrtc/base/buffer.h"
|
| #include "webrtc/base/crc32.h"
|
| #include "webrtc/base/gunit.h"
|
| #include "webrtc/base/helpers.h"
|
| @@ -33,7 +34,9 @@
|
| #include "webrtc/base/virtualsocketserver.h"
|
|
|
| using rtc::AsyncPacketSocket;
|
| -using rtc::ByteBuffer;
|
| +using rtc::Buffer;
|
| +using rtc::ByteBufferReader;
|
| +using rtc::ByteBufferWriter;
|
| using rtc::NATType;
|
| using rtc::NAT_OPEN_CONE;
|
| using rtc::NAT_ADDR_RESTRICTED;
|
| @@ -84,13 +87,14 @@ static SocketAddress GetAddress(Port* port) {
|
|
|
| static IceMessage* CopyStunMessage(const IceMessage* src) {
|
| IceMessage* dst = new IceMessage();
|
| - ByteBuffer buf;
|
| + ByteBufferWriter buf;
|
| src->Write(&buf);
|
| - dst->Read(&buf);
|
| + ByteBufferReader read_buf(buf);
|
| + dst->Read(&read_buf);
|
| return dst;
|
| }
|
|
|
| -static bool WriteStunMessage(const StunMessage* msg, ByteBuffer* buf) {
|
| +static bool WriteStunMessage(const StunMessage* msg, ByteBufferWriter* buf) {
|
| buf->Resize(0); // clear out any existing buffer contents
|
| return msg->Write(buf);
|
| }
|
| @@ -123,7 +127,7 @@ class TestPort : public Port {
|
|
|
| // The last StunMessage that was sent on this Port.
|
| // TODO: Make these const; requires changes to SendXXXXResponse.
|
| - ByteBuffer* last_stun_buf() { return last_stun_buf_.get(); }
|
| + Buffer* last_stun_buf() { return last_stun_buf_.get(); }
|
| IceMessage* last_stun_msg() { return last_stun_msg_.get(); }
|
| int last_stun_error_code() {
|
| int code = 0;
|
| @@ -174,14 +178,13 @@ class TestPort : public Port {
|
| const rtc::PacketOptions& options, bool payload) {
|
| if (!payload) {
|
| IceMessage* msg = new IceMessage;
|
| - ByteBuffer* buf = new ByteBuffer(static_cast<const char*>(data), size);
|
| - ByteBuffer::ReadPosition pos(buf->GetReadPosition());
|
| - if (!msg->Read(buf)) {
|
| + Buffer* buf = new Buffer(static_cast<const char*>(data), size);
|
| + ByteBufferReader read_buf(*buf);
|
| + if (!msg->Read(&read_buf)) {
|
| delete msg;
|
| delete buf;
|
| return -1;
|
| }
|
| - buf->SetReadPosition(pos);
|
| last_stun_buf_.reset(buf);
|
| last_stun_msg_.reset(msg);
|
| }
|
| @@ -209,7 +212,7 @@ class TestPort : public Port {
|
| const rtc::SentPacket& sent_packet) {
|
| PortInterface::SignalSentPacket(sent_packet);
|
| }
|
| - rtc::scoped_ptr<ByteBuffer> last_stun_buf_;
|
| + rtc::scoped_ptr<Buffer> last_stun_buf_;
|
| rtc::scoped_ptr<IceMessage> last_stun_msg_;
|
| int type_preference_ = 0;
|
| };
|
| @@ -1328,8 +1331,8 @@ TEST_F(PortTest, TestLoopbackCal) {
|
| ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
|
| IceMessage* msg = lport->last_stun_msg();
|
| EXPECT_EQ(STUN_BINDING_REQUEST, msg->type());
|
| - conn->OnReadPacket(lport->last_stun_buf()->Data(),
|
| - lport->last_stun_buf()->Length(),
|
| + conn->OnReadPacket(lport->last_stun_buf()->data<char>(),
|
| + lport->last_stun_buf()->size(),
|
| rtc::PacketTime());
|
| ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
|
| msg = lport->last_stun_msg();
|
| @@ -1361,7 +1364,7 @@ TEST_F(PortTest, TestLoopbackCal) {
|
| modified_req->AddFingerprint();
|
|
|
| lport->Reset();
|
| - rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
|
| + rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
|
| WriteStunMessage(modified_req.get(), buf.get());
|
| conn1->OnReadPacket(buf->Data(), buf->Length(), rtc::PacketTime());
|
| ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
|
| @@ -1398,8 +1401,8 @@ TEST_F(PortTest, TestIceRoleConflict) {
|
| IceMessage* msg = rport->last_stun_msg();
|
| EXPECT_EQ(STUN_BINDING_REQUEST, msg->type());
|
| // Send rport binding request to lport.
|
| - lconn->OnReadPacket(rport->last_stun_buf()->Data(),
|
| - rport->last_stun_buf()->Length(),
|
| + lconn->OnReadPacket(rport->last_stun_buf()->data<char>(),
|
| + rport->last_stun_buf()->size(),
|
| rtc::PacketTime());
|
|
|
| ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
|
| @@ -1624,7 +1627,7 @@ TEST_F(PortTest, TestSendStunMessage) {
|
| EXPECT_EQ("rfrag:lfrag", username_attr->GetString());
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_MESSAGE_INTEGRITY) != NULL);
|
| EXPECT_TRUE(StunMessage::ValidateMessageIntegrity(
|
| - lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length(),
|
| + lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size(),
|
| "rpass"));
|
| const StunUInt64Attribute* ice_controlling_attr =
|
| msg->GetUInt64(STUN_ATTR_ICE_CONTROLLING);
|
| @@ -1634,7 +1637,7 @@ TEST_F(PortTest, TestSendStunMessage) {
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_USE_CANDIDATE) != NULL);
|
| EXPECT_TRUE(msg->GetUInt32(STUN_ATTR_FINGERPRINT) != NULL);
|
| EXPECT_TRUE(StunMessage::ValidateFingerprint(
|
| - lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length()));
|
| + lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size()));
|
|
|
| // Request should not include ping count.
|
| ASSERT_TRUE(msg->GetUInt32(STUN_ATTR_RETRANSMIT_COUNT) == NULL);
|
| @@ -1656,11 +1659,11 @@ TEST_F(PortTest, TestSendStunMessage) {
|
| EXPECT_EQ(lport->Candidates()[0].address(), addr_attr->GetAddress());
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_MESSAGE_INTEGRITY) != NULL);
|
| EXPECT_TRUE(StunMessage::ValidateMessageIntegrity(
|
| - rport->last_stun_buf()->Data(), rport->last_stun_buf()->Length(),
|
| + rport->last_stun_buf()->data<char>(), rport->last_stun_buf()->size(),
|
| "rpass"));
|
| EXPECT_TRUE(msg->GetUInt32(STUN_ATTR_FINGERPRINT) != NULL);
|
| EXPECT_TRUE(StunMessage::ValidateFingerprint(
|
| - lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length()));
|
| + lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size()));
|
| // No USERNAME or PRIORITY in ICE responses.
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_USERNAME) == NULL);
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_PRIORITY) == NULL);
|
| @@ -1688,11 +1691,11 @@ TEST_F(PortTest, TestSendStunMessage) {
|
| EXPECT_EQ(std::string(STUN_ERROR_REASON_SERVER_ERROR), error_attr->reason());
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_MESSAGE_INTEGRITY) != NULL);
|
| EXPECT_TRUE(StunMessage::ValidateMessageIntegrity(
|
| - rport->last_stun_buf()->Data(), rport->last_stun_buf()->Length(),
|
| + rport->last_stun_buf()->data<char>(), rport->last_stun_buf()->size(),
|
| "rpass"));
|
| EXPECT_TRUE(msg->GetUInt32(STUN_ATTR_FINGERPRINT) != NULL);
|
| EXPECT_TRUE(StunMessage::ValidateFingerprint(
|
| - lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length()));
|
| + lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size()));
|
| // No USERNAME with ICE.
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_USERNAME) == NULL);
|
| EXPECT_TRUE(msg->GetByteString(STUN_ATTR_PRIORITY) == NULL);
|
| @@ -1764,7 +1767,7 @@ TEST_F(PortTest, TestHandleStunMessage) {
|
| CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
|
|
|
| rtc::scoped_ptr<IceMessage> in_msg, out_msg;
|
| - rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
|
| + rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
|
| rtc::SocketAddress addr(kLocalAddr1);
|
| std::string username;
|
|
|
| @@ -1814,7 +1817,7 @@ TEST_F(PortTest, TestHandleStunMessageBadUsername) {
|
| CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
|
|
|
| rtc::scoped_ptr<IceMessage> in_msg, out_msg;
|
| - rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
|
| + rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
|
| rtc::SocketAddress addr(kLocalAddr1);
|
| std::string username;
|
|
|
| @@ -1883,7 +1886,7 @@ TEST_F(PortTest, TestHandleStunMessageBadMessageIntegrity) {
|
| CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
|
|
|
| rtc::scoped_ptr<IceMessage> in_msg, out_msg;
|
| - rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
|
| + rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
|
| rtc::SocketAddress addr(kLocalAddr1);
|
| std::string username;
|
|
|
| @@ -1924,7 +1927,7 @@ TEST_F(PortTest, TestHandleStunMessageBadFingerprint) {
|
| CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
|
|
|
| rtc::scoped_ptr<IceMessage> in_msg, out_msg;
|
| - rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
|
| + rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
|
| rtc::SocketAddress addr(kLocalAddr1);
|
| std::string username;
|
|
|
| @@ -1993,7 +1996,7 @@ TEST_F(PortTest, TestHandleStunBindingIndication) {
|
|
|
| // Verifying encoding and decoding STUN indication message.
|
| rtc::scoped_ptr<IceMessage> in_msg, out_msg;
|
| - rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
|
| + rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
|
| rtc::SocketAddress addr(kLocalAddr1);
|
| std::string username;
|
|
|
| @@ -2028,8 +2031,8 @@ TEST_F(PortTest, TestHandleStunBindingIndication) {
|
| IceMessage* msg = rport->last_stun_msg();
|
| EXPECT_EQ(STUN_BINDING_REQUEST, msg->type());
|
| // Send rport binding request to lport.
|
| - lconn->OnReadPacket(rport->last_stun_buf()->Data(),
|
| - rport->last_stun_buf()->Length(),
|
| + lconn->OnReadPacket(rport->last_stun_buf()->data<char>(),
|
| + rport->last_stun_buf()->size(),
|
| rtc::PacketTime());
|
| ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
|
| EXPECT_EQ(STUN_BINDING_RESPONSE, lport->last_stun_msg()->type());
|
| @@ -2415,8 +2418,8 @@ TEST_F(PortTest, TestIceLiteConnectivity) {
|
| request.get(), ice_full_port->Candidates()[0].address());
|
|
|
| // Feeding the respone message from litemode to the full mode connection.
|
| - ch1.conn()->OnReadPacket(ice_lite_port->last_stun_buf()->Data(),
|
| - ice_lite_port->last_stun_buf()->Length(),
|
| + ch1.conn()->OnReadPacket(ice_lite_port->last_stun_buf()->data<char>(),
|
| + ice_lite_port->last_stun_buf()->size(),
|
| rtc::PacketTime());
|
| // Verifying full mode connection becomes writable from the response.
|
| EXPECT_EQ_WAIT(Connection::STATE_WRITABLE, ch1.conn()->write_state(),
|
|
|