| Index: net/tools/quic/quic_default_packet_writer.cc
|
| diff --git a/net/tools/quic/quic_default_packet_writer.cc b/net/tools/quic/quic_default_packet_writer.cc
|
| index 9d3e30831c1c8c19e4f5b8936e32b82de56aa025..6d77c00a9f565a7f37209ef7f1590e1edc53bdab 100644
|
| --- a/net/tools/quic/quic_default_packet_writer.cc
|
| +++ b/net/tools/quic/quic_default_packet_writer.cc
|
| @@ -9,7 +9,9 @@
|
| namespace net {
|
| namespace tools {
|
|
|
| -QuicDefaultPacketWriter::QuicDefaultPacketWriter(int fd) : fd_(fd) {}
|
| +QuicDefaultPacketWriter::QuicDefaultPacketWriter(int fd)
|
| + : fd_(fd),
|
| + write_blocked_(false) {}
|
|
|
| QuicDefaultPacketWriter::~QuicDefaultPacketWriter() {}
|
|
|
| @@ -18,13 +20,26 @@ WriteResult QuicDefaultPacketWriter::WritePacket(
|
| const net::IPAddressNumber& self_address,
|
| const net::IPEndPoint& peer_address,
|
| QuicBlockedWriterInterface* blocked_writer) {
|
| - return QuicSocketUtils::WritePacket(fd_, buffer, buf_len,
|
| - self_address, peer_address);
|
| + DCHECK(!IsWriteBlocked());
|
| + WriteResult result = QuicSocketUtils::WritePacket(
|
| + fd_, buffer, buf_len, self_address, peer_address);
|
| + if (result.status == WRITE_STATUS_BLOCKED) {
|
| + write_blocked_ = true;
|
| + }
|
| + return result;
|
| }
|
|
|
| bool QuicDefaultPacketWriter::IsWriteBlockedDataBuffered() const {
|
| return false;
|
| }
|
|
|
| +bool QuicDefaultPacketWriter::IsWriteBlocked() const {
|
| + return write_blocked_;
|
| +}
|
| +
|
| +void QuicDefaultPacketWriter::SetWritable() {
|
| + write_blocked_ = false;
|
| +}
|
| +
|
| } // namespace tools
|
| } // namespace net
|
|
|