Index: net/udp/fuzzed_datagram_client_socket.cc |
diff --git a/net/udp/fuzzed_datagram_client_socket.cc b/net/udp/fuzzed_datagram_client_socket.cc |
deleted file mode 100644 |
index 944da35e0bdedb783af24c95bccb6172379dc4a2..0000000000000000000000000000000000000000 |
--- a/net/udp/fuzzed_datagram_client_socket.cc |
+++ /dev/null |
@@ -1,196 +0,0 @@ |
-// Copyright 2016 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 "net/udp/fuzzed_datagram_client_socket.h" |
- |
-#include <algorithm> |
- |
-#include "base/bind.h" |
-#include "base/location.h" |
-#include "base/logging.h" |
-#include "base/strings/string_piece.h" |
-#include "base/test/fuzzed_data_provider.h" |
-#include "base/threading/thread_task_runner_handle.h" |
-#include "net/base/io_buffer.h" |
-#include "net/base/ip_address.h" |
-#include "net/base/net_errors.h" |
- |
-namespace net { |
- |
-// Subset of network errors that can occur on each operation. Less clear cut |
-// than TCP errors, so some of these may not actually be possible. |
-const Error kConnectErrors[] = {ERR_FAILED, ERR_ADDRESS_UNREACHABLE, |
- ERR_ACCESS_DENIED}; |
-const Error kReadErrors[] = {ERR_FAILED, ERR_ADDRESS_UNREACHABLE}; |
-const Error kWriteErrors[] = {ERR_FAILED, ERR_ADDRESS_UNREACHABLE, |
- ERR_MSG_TOO_BIG}; |
- |
-FuzzedDatagramClientSocket::FuzzedDatagramClientSocket( |
- base::FuzzedDataProvider* data_provider) |
- : data_provider_(data_provider), weak_factory_(this) {} |
- |
-FuzzedDatagramClientSocket::~FuzzedDatagramClientSocket() {} |
- |
-int FuzzedDatagramClientSocket::Connect(const IPEndPoint& address) { |
- CHECK(!connected_); |
- |
- // Decide if the connect attempt succeeds. |
- if (data_provider_->ConsumeBool()) { |
- connected_ = true; |
- remote_address_ = address; |
- return OK; |
- } |
- |
- // On failure, return a random connect error. |
- return data_provider_->PickValueInArray(kConnectErrors); |
-} |
- |
-int FuzzedDatagramClientSocket::ConnectUsingNetwork( |
- NetworkChangeNotifier::NetworkHandle network, |
- const IPEndPoint& address) { |
- CHECK(!connected_); |
- return ERR_NOT_IMPLEMENTED; |
-} |
- |
-int FuzzedDatagramClientSocket::FuzzedDatagramClientSocket:: |
- ConnectUsingDefaultNetwork(const IPEndPoint& address) { |
- CHECK(!connected_); |
- return ERR_NOT_IMPLEMENTED; |
-} |
- |
-NetworkChangeNotifier::NetworkHandle |
-FuzzedDatagramClientSocket::GetBoundNetwork() const { |
- return NetworkChangeNotifier::kInvalidNetworkHandle; |
-} |
- |
-void FuzzedDatagramClientSocket::Close() { |
- connected_ = false; |
- read_pending_ = false; |
- write_pending_ = false; |
- remote_address_ = IPEndPoint(); |
- weak_factory_.InvalidateWeakPtrs(); |
-} |
- |
-int FuzzedDatagramClientSocket::GetPeerAddress(IPEndPoint* address) const { |
- if (!connected_) |
- return ERR_SOCKET_NOT_CONNECTED; |
- *address = remote_address_; |
- return OK; |
-} |
- |
-int FuzzedDatagramClientSocket::GetLocalAddress(IPEndPoint* address) const { |
- if (!connected_) |
- return ERR_SOCKET_NOT_CONNECTED; |
- *address = IPEndPoint(IPAddress(1, 2, 3, 4), 43210); |
- return OK; |
-} |
- |
-void FuzzedDatagramClientSocket::UseNonBlockingIO() {} |
- |
-const NetLogWithSource& FuzzedDatagramClientSocket::NetLog() const { |
- return net_log_; |
-} |
- |
-int FuzzedDatagramClientSocket::Read(IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback) { |
- CHECK(!callback.is_null()); |
- CHECK_GT(buf_len, 0); |
- CHECK(!read_pending_); |
- |
- // Normally calling this on disconnected sockets is allowed, but code really |
- // shouldn't be doing this. If it is, it's best to figure out why, and fix |
- // it. Note that |connected_| is only set to false on calls to Close(), not on |
- // errors. |
- CHECK(connected_); |
- |
- // Get contents of response. |
- std::string data(data_provider_->ConsumeBytes( |
- data_provider_->ConsumeUint32InRange(0, buf_len))); |
- |
- int result; |
- if (data.size() > 0) { |
- // If the response is not empty, consider it a successful read. |
- result = data.size(); |
- std::copy(data.begin(), data.end(), buf->data()); |
- } else { |
- // If the response is empty, pick a random read error. |
- result = data_provider_->PickValueInArray(kReadErrors); |
- } |
- |
- // Decide if result should be returned synchronously. |
- if (data_provider_->ConsumeBool()) |
- return result; |
- |
- read_pending_ = true; |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&FuzzedDatagramClientSocket::OnReadComplete, |
- weak_factory_.GetWeakPtr(), callback, result)); |
- return ERR_IO_PENDING; |
-} |
- |
-int FuzzedDatagramClientSocket::Write(IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback) { |
- CHECK(!callback.is_null()); |
- CHECK(!write_pending_); |
- |
- // Normally this is allowed, but code really shouldn't be doing this - if it |
- // is, it's best to figure out why, and fix it. |
- CHECK(connected_); |
- |
- int result; |
- // Decide if success or failure. |
- if (data_provider_->ConsumeBool()) { |
- // On success, everything is written. |
- result = buf_len; |
- } else { |
- // On failure, pick a random write error. |
- result = data_provider_->PickValueInArray(kWriteErrors); |
- } |
- |
- // Decide if result should be returned synchronously. |
- if (data_provider_->ConsumeBool()) |
- return result; |
- |
- write_pending_ = true; |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&FuzzedDatagramClientSocket::OnWriteComplete, |
- weak_factory_.GetWeakPtr(), callback, result)); |
- return ERR_IO_PENDING; |
-} |
- |
-int FuzzedDatagramClientSocket::SetReceiveBufferSize(int32_t size) { |
- return OK; |
-} |
- |
-int FuzzedDatagramClientSocket::SetSendBufferSize(int32_t size) { |
- return OK; |
-} |
- |
-int FuzzedDatagramClientSocket::SetDoNotFragment() { |
- return OK; |
-} |
- |
-void FuzzedDatagramClientSocket::OnReadComplete( |
- const net::CompletionCallback& callback, |
- int result) { |
- CHECK(connected_); |
- CHECK(read_pending_); |
- |
- read_pending_ = false; |
- callback.Run(result); |
-} |
- |
-void FuzzedDatagramClientSocket::OnWriteComplete( |
- const net::CompletionCallback& callback, |
- int result) { |
- CHECK(connected_); |
- CHECK(write_pending_); |
- |
- write_pending_ = false; |
- callback.Run(result); |
-} |
- |
-} // namespace net |