| Index: net/tools/quic/quic_simple_client_stream.cc
|
| diff --git a/net/tools/quic/quic_simple_client_stream.cc b/net/tools/quic/quic_simple_client_stream.cc
|
| index 528d5f76a0eb85660f9647c639134e384a586830..2d649cda8d1781bcde030ef132e153b09ea23a57 100644
|
| --- a/net/tools/quic/quic_simple_client_stream.cc
|
| +++ b/net/tools/quic/quic_simple_client_stream.cc
|
| @@ -2,12 +2,11 @@
|
| // 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_simple_client_stream.h"
|
| +#include "net/tools/quic/quic_spdy_client_stream.h"
|
|
|
| -#include "net/http/http_response_info.h"
|
| #include "net/spdy/spdy_framer.h"
|
| -#include "net/spdy/spdy_http_utils.h"
|
| -#include "net/tools/quic/quic_simple_client_session.h"
|
| +#include "net/tools/quic/quic_client_session.h"
|
| +#include "net/tools/quic/spdy_utils.h"
|
|
|
| using base::StringPiece;
|
| using std::string;
|
| @@ -17,20 +16,19 @@
|
|
|
| static const size_t kHeaderBufInitialSize = 4096;
|
|
|
| -QuicSimpleClientStream::QuicSimpleClientStream(QuicStreamId id,
|
| - QuicSimpleClientSession* session)
|
| +QuicSpdyClientStream::QuicSpdyClientStream(QuicStreamId id,
|
| + QuicClientSession* session)
|
| : QuicDataStream(id, session),
|
| read_buf_(new GrowableIOBuffer()),
|
| response_headers_received_(false),
|
| header_bytes_read_(0),
|
| header_bytes_written_(0) {
|
| - read_buf_->SetCapacity(kHeaderBufInitialSize);
|
| }
|
|
|
| -QuicSimpleClientStream::~QuicSimpleClientStream() {
|
| +QuicSpdyClientStream::~QuicSpdyClientStream() {
|
| }
|
|
|
| -void QuicSimpleClientStream::OnStreamFrame(const QuicStreamFrame& frame) {
|
| +void QuicSpdyClientStream::OnStreamFrame(const QuicStreamFrame& frame) {
|
| if (!write_side_closed()) {
|
| DVLOG(1) << "Got a response before the request was complete. "
|
| << "Aborting request.";
|
| @@ -39,14 +37,14 @@
|
| QuicDataStream::OnStreamFrame(frame);
|
| }
|
|
|
| -void QuicSimpleClientStream::OnStreamHeadersComplete(bool fin,
|
| +void QuicSpdyClientStream::OnStreamHeadersComplete(bool fin,
|
| size_t frame_len) {
|
| header_bytes_read_ = frame_len;
|
| QuicDataStream::OnStreamHeadersComplete(fin, frame_len);
|
| }
|
|
|
| -uint32 QuicSimpleClientStream::ProcessData(const char* data,
|
| - uint32 data_len) {
|
| +uint32 QuicSpdyClientStream::ProcessData(const char* data,
|
| + uint32 data_len) {
|
| int total_bytes_processed = 0;
|
|
|
| // Are we still reading the response headers.
|
| @@ -65,26 +63,22 @@
|
| return data_len;
|
| }
|
|
|
| -void QuicSimpleClientStream::OnFinRead() {
|
| +void QuicSpdyClientStream::OnFinRead() {
|
| ReliableQuicStream::OnFinRead();
|
| if (!response_headers_received_) {
|
| Reset(QUIC_BAD_APPLICATION_PAYLOAD);
|
| - } else if (headers()->GetContentLength() != -1 &&
|
| - data_.size() !=
|
| - static_cast<size_t>(headers()->GetContentLength())) {
|
| + } else if ((headers().content_length_status() ==
|
| + BalsaHeadersEnums::VALID_CONTENT_LENGTH) &&
|
| + data_.size() != headers().content_length()) {
|
| Reset(QUIC_BAD_APPLICATION_PAYLOAD);
|
| }
|
| }
|
|
|
| -size_t QuicSimpleClientStream::SendRequest(const HttpRequestInfo& headers,
|
| - StringPiece body,
|
| - bool fin) {
|
| - SpdyHeaderBlock header_block;
|
| - CreateSpdyHeadersFromHttpRequest(headers,
|
| - headers.extra_headers,
|
| - SPDY3,
|
| - /*direct=*/ true,
|
| - &header_block);
|
| +ssize_t QuicSpdyClientStream::SendRequest(const BalsaHeaders& headers,
|
| + StringPiece body,
|
| + bool fin) {
|
| + SpdyHeaderBlock header_block =
|
| + SpdyUtils::RequestHeadersToSpdyHeaders(headers);
|
|
|
| bool send_fin_with_headers = fin && body.empty();
|
| size_t bytes_sent = body.size();
|
| @@ -99,7 +93,7 @@
|
| return bytes_sent;
|
| }
|
|
|
| -int QuicSimpleClientStream::ParseResponseHeaders() {
|
| +int QuicSpdyClientStream::ParseResponseHeaders() {
|
| size_t read_buf_len = static_cast<size_t>(read_buf_->offset());
|
| SpdyFramer framer(SPDY3);
|
| SpdyHeaderBlock headers;
|
| @@ -110,13 +104,10 @@
|
| return -1;
|
| }
|
|
|
| - HttpResponseInfo info;
|
| - if (!SpdyHeadersToHttpResponse(headers, SPDY3, &info)) {
|
| + if (!SpdyUtils::FillBalsaResponseHeaders(headers, &headers_)) {
|
| Reset(QUIC_BAD_APPLICATION_PAYLOAD);
|
| return -1;
|
| }
|
| - headers_ = info.headers;
|
| -
|
| response_headers_received_ = true;
|
|
|
| size_t delta = read_buf_len - len;
|
| @@ -124,14 +115,14 @@
|
| data_.append(data + len, delta);
|
| }
|
|
|
| - return static_cast<int>(len);
|
| + return len;
|
| }
|
|
|
| -void QuicSimpleClientStream::SendBody(const string& data, bool fin) {
|
| +void QuicSpdyClientStream::SendBody(const string& data, bool fin) {
|
| SendBody(data, fin, nullptr);
|
| }
|
|
|
| -void QuicSimpleClientStream::SendBody(
|
| +void QuicSpdyClientStream::SendBody(
|
| const string& data,
|
| bool fin,
|
| QuicAckNotifier::DelegateInterface* delegate) {
|
|
|