blob: 1e146c4376ffa699525f08e45db4d3ea561284fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
// Copyright 2017 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 "quiche/quic/test_tools/bad_packet_writer.h"
namespace quic {
namespace test {
BadPacketWriter::BadPacketWriter(size_t packet_causing_write_error,
int error_code)
: packet_causing_write_error_(packet_causing_write_error),
error_code_(error_code) {}
BadPacketWriter::~BadPacketWriter() {}
WriteResult BadPacketWriter::WritePacket(const char* buffer, size_t buf_len,
const QuicIpAddress& self_address,
const QuicSocketAddress& peer_address,
PerPacketOptions* options) {
if (error_code_ == 0 || packet_causing_write_error_ > 0) {
if (packet_causing_write_error_ > 0) {
--packet_causing_write_error_;
}
return QuicPacketWriterWrapper::WritePacket(buffer, buf_len, self_address,
peer_address, options);
}
// It's time to cause write error.
int error_code = error_code_;
error_code_ = 0;
return WriteResult(WRITE_STATUS_ERROR, error_code);
}
} // namespace test
} // namespace quic
|