Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Unified Diff: remoting/protocol/quic_channel.cc

Issue 1493083002: Remove QUIC support from remoting host and client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/protocol/quic_channel.h ('k') | remoting/protocol/quic_channel_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/quic_channel.cc
diff --git a/remoting/protocol/quic_channel.cc b/remoting/protocol/quic_channel.cc
deleted file mode 100644
index 66fa39be218057a50c66b3ee11ef39ea700f8695..0000000000000000000000000000000000000000
--- a/remoting/protocol/quic_channel.cc
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "remoting/protocol/quic_channel.h"
-
-#include "base/callback_helpers.h"
-#include "net/base/io_buffer.h"
-#include "net/base/net_errors.h"
-
-namespace remoting {
-namespace protocol {
-
-static const size_t kNamePrefixLength = 1;
-static const size_t kMaxNameLength = 255;
-
-QuicChannel::QuicChannel(net::QuicP2PStream* stream,
- const base::Closure& on_destroyed_callback)
- : stream_(stream), on_destroyed_callback_(on_destroyed_callback) {
- DCHECK(stream_);
- stream_->SetDelegate(this);
-}
-
-QuicChannel::~QuicChannel() {
- // Don't call the read callback when destroying the stream.
- read_callback_.Reset();
-
- on_destroyed_callback_.Run();
-
- // The callback must destroy the stream which must result in OnClose().
- DCHECK(!stream_);
-}
-
-int QuicChannel::Read(const scoped_refptr<net::IOBuffer>& buffer,
- int buffer_len,
- const net::CompletionCallback& callback) {
- DCHECK(read_callback_.is_null());
-
- if (error_ != net::OK)
- return error_;
-
- if (data_received_.total_bytes() == 0) {
- read_buffer_ = buffer;
- read_buffer_size_ = buffer_len;
- read_callback_ = callback;
- return net::ERR_IO_PENDING;
- }
-
- int result = std::min(buffer_len, data_received_.total_bytes());
- data_received_.CopyTo(buffer->data(), result);
- data_received_.CropFront(result);
- return result;
-}
-
-int QuicChannel::Write(const scoped_refptr<net::IOBuffer>& buffer,
- int buffer_len,
- const net::CompletionCallback& callback) {
- if (error_ != net::OK)
- return error_;
-
- return stream_->Write(base::StringPiece(buffer->data(), buffer_len),
- callback);
-}
-
-void QuicChannel::SetName(const std::string& name) {
- DCHECK(name_.empty());
-
- name_ = name;
-}
-
-void QuicChannel::OnDataReceived(const char* data, int length) {
- if (read_callback_.is_null()) {
- data_received_.AppendCopyOf(data, length);
- return;
- }
-
- DCHECK_EQ(data_received_.total_bytes(), 0);
- int bytes_to_read = std::min(length, read_buffer_size_);
- memcpy(read_buffer_->data(), data, bytes_to_read);
- read_buffer_ = nullptr;
-
- // Copy leftover data to |data_received_|.
- if (length > bytes_to_read)
- data_received_.AppendCopyOf(data + bytes_to_read, length - bytes_to_read);
-
- base::ResetAndReturn(&read_callback_).Run(bytes_to_read);
-}
-
-void QuicChannel::OnClose(net::QuicErrorCode error) {
- error_ = (error == net::QUIC_NO_ERROR) ? net::ERR_CONNECTION_CLOSED
- : net::ERR_QUIC_PROTOCOL_ERROR;
- stream_ = nullptr;
- if (!read_callback_.is_null()) {
- base::ResetAndReturn(&read_callback_).Run(error_);
- }
-}
-
-QuicClientChannel::QuicClientChannel(net::QuicP2PStream* stream,
- const base::Closure& on_destroyed_callback,
- const std::string& name)
- : QuicChannel(stream, on_destroyed_callback) {
- CHECK_LE(name.size(), kMaxNameLength);
-
- SetName(name);
-
- // Send the name to the host.
- stream_->WriteHeader(
- std::string(kNamePrefixLength, static_cast<char>(name.size())) + name);
-}
-
-QuicClientChannel::~QuicClientChannel() {}
-
-QuicServerChannel::QuicServerChannel(
- net::QuicP2PStream* stream,
- const base::Closure& on_destroyed_callback)
- : QuicChannel(stream, on_destroyed_callback) {}
-
-void QuicServerChannel::ReceiveName(
- const base::Closure& name_received_callback) {
- name_received_callback_ = name_received_callback;
-
- // First read 1 byte containing name length.
- name_read_buffer_ = new net::DrainableIOBuffer(
- new net::IOBuffer(kNamePrefixLength), kNamePrefixLength);
- int result = Read(name_read_buffer_, kNamePrefixLength,
- base::Bind(&QuicServerChannel::OnNameSizeReadResult,
- base::Unretained(this)));
- if (result != net::ERR_IO_PENDING)
- OnNameSizeReadResult(result);
-}
-
-QuicServerChannel::~QuicServerChannel() {}
-
-void QuicServerChannel::OnNameSizeReadResult(int result) {
- if (result < 0) {
- base::ResetAndReturn(&name_received_callback_).Run();
- return;
- }
-
- DCHECK_EQ(result, static_cast<int>(kNamePrefixLength));
- name_length_ = *reinterpret_cast<uint8_t*>(name_read_buffer_->data());
- name_read_buffer_ =
- new net::DrainableIOBuffer(new net::IOBuffer(name_length_), name_length_);
- ReadNameLoop(0);
-}
-
-void QuicServerChannel::ReadNameLoop(int result) {
- while (result >= 0 && name_read_buffer_->BytesRemaining() > 0) {
- result = Read(name_read_buffer_, name_read_buffer_->BytesRemaining(),
- base::Bind(&QuicServerChannel::OnNameReadResult,
- base::Unretained(this)));
- if (result >= 0) {
- name_read_buffer_->DidConsume(result);
- }
- }
-
- if (result < 0 && result != net::ERR_IO_PENDING) {
- // Failed to read name for the stream.
- base::ResetAndReturn(&name_received_callback_).Run();
- return;
- }
-
- if (name_read_buffer_->BytesRemaining() == 0) {
- name_read_buffer_->SetOffset(0);
- SetName(std::string(name_read_buffer_->data(),
- name_read_buffer_->data() + name_length_));
- base::ResetAndReturn(&name_received_callback_).Run();
- }
-}
-
-void QuicServerChannel::OnNameReadResult(int result) {
- if (result > 0)
- name_read_buffer_->DidConsume(result);
-
- ReadNameLoop(result);
-}
-
-} // namespace protocol
-} // namespace remoting
« no previous file with comments | « remoting/protocol/quic_channel.h ('k') | remoting/protocol/quic_channel_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698