mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 00:06:09 +03:00
42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
// Copyright (c) 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/tools/quic/quic_spdy_server_stream_base.h"
|
|
|
|
#include "net/quic/core/quic_error_codes.h"
|
|
#include "net/quic/platform/api/quic_logging.h"
|
|
|
|
namespace net {
|
|
|
|
QuicSpdyServerStreamBase::QuicSpdyServerStreamBase(QuicStreamId id,
|
|
QuicSpdySession* session)
|
|
: QuicSpdyStream(id, session) {}
|
|
|
|
void QuicSpdyServerStreamBase::CloseWriteSide() {
|
|
if (!fin_received() && !rst_received() && sequencer()->ignore_read_data() &&
|
|
!rst_sent()) {
|
|
// Early cancel the stream if it has stopped reading before receiving FIN
|
|
// or RST.
|
|
DCHECK(fin_sent());
|
|
// Tell the peer to stop sending further data.
|
|
QUIC_DVLOG(1) << " Server: Send QUIC_STREAM_NO_ERROR on stream " << id();
|
|
Reset(QUIC_STREAM_NO_ERROR);
|
|
}
|
|
|
|
QuicSpdyStream::CloseWriteSide();
|
|
}
|
|
|
|
void QuicSpdyServerStreamBase::StopReading() {
|
|
if (!fin_received() && !rst_received() && write_side_closed() &&
|
|
!rst_sent()) {
|
|
DCHECK(fin_sent());
|
|
// Tell the peer to stop sending further data.
|
|
QUIC_DVLOG(1) << " Server: Send QUIC_STREAM_NO_ERROR on stream " << id();
|
|
Reset(QUIC_STREAM_NO_ERROR);
|
|
}
|
|
QuicSpdyStream::StopReading();
|
|
}
|
|
|
|
} // namespace net
|