diff --git a/p2p/base/dtls_transport.cc b/p2p/base/dtls_transport.cc index 7d9c0b5cce..4180bc8348 100644 --- a/p2p/base/dtls_transport.cc +++ b/p2p/base/dtls_transport.cc @@ -72,10 +72,9 @@ StreamInterfaceChannel::StreamInterfaceChannel( state_(rtc::SS_OPEN), packets_(kMaxPendingPackets, kMaxDtlsPacketLen) {} -rtc::StreamResult StreamInterfaceChannel::Read(void* buffer, - size_t buffer_len, - size_t* read, - int* error) { +rtc::StreamResult StreamInterfaceChannel::Read(rtc::ArrayView buffer, + size_t& read, + int& error) { RTC_DCHECK_RUN_ON(&sequence_checker_); if (state_ == rtc::SS_CLOSED) @@ -83,27 +82,25 @@ rtc::StreamResult StreamInterfaceChannel::Read(void* buffer, if (state_ == rtc::SS_OPENING) return rtc::SR_BLOCK; - if (!packets_.ReadFront(buffer, buffer_len, read)) { + if (!packets_.ReadFront(buffer.data(), buffer.size(), &read)) { return rtc::SR_BLOCK; } return rtc::SR_SUCCESS; } -rtc::StreamResult StreamInterfaceChannel::Write(const void* data, - size_t data_len, - size_t* written, - int* error) { +rtc::StreamResult StreamInterfaceChannel::Write( + rtc::ArrayView data, + size_t& written, + int& error) { RTC_DCHECK_RUN_ON(&sequence_checker_); // Always succeeds, since this is an unreliable transport anyway. // TODO(zhihuang): Should this block if ice_transport_'s temporarily // unwritable? rtc::PacketOptions packet_options; - ice_transport_->SendPacket(static_cast(data), data_len, - packet_options); - if (written) { - *written = data_len; - } + ice_transport_->SendPacket(reinterpret_cast(data.data()), + data.size(), packet_options); + written = data.size(); return rtc::SR_SUCCESS; } diff --git a/p2p/base/dtls_transport.h b/p2p/base/dtls_transport.h index 2b26e2553f..4e21410b76 100644 --- a/p2p/base/dtls_transport.h +++ b/p2p/base/dtls_transport.h @@ -49,14 +49,12 @@ class StreamInterfaceChannel : public rtc::StreamInterface { // Implementations of StreamInterface rtc::StreamState GetState() const override; void Close() override; - rtc::StreamResult Read(void* buffer, - size_t buffer_len, - size_t* read, - int* error) override; - rtc::StreamResult Write(const void* data, - size_t data_len, - size_t* written, - int* error) override; + rtc::StreamResult Read(rtc::ArrayView buffer, + size_t& read, + int& error) override; + rtc::StreamResult Write(rtc::ArrayView data, + size_t& written, + int& error) override; private: RTC_NO_UNIQUE_ADDRESS webrtc::SequenceChecker sequence_checker_;