| Index: net/tools/quic/quic_spdy_server_stream.cc
|
| diff --git a/net/tools/quic/quic_spdy_server_stream.cc b/net/tools/quic/quic_spdy_server_stream.cc
|
| index a357827af2be656c2079776bfb5bb1acc23946ea..c1a9cf15e1809427c2f0b3608dc66e403a59871f 100644
|
| --- a/net/tools/quic/quic_spdy_server_stream.cc
|
| +++ b/net/tools/quic/quic_spdy_server_stream.cc
|
| @@ -54,26 +54,15 @@ void QuicSpdyServerStream::OnFinRead() {
|
|
|
| if (!request_headers_received_) {
|
| SendErrorResponse(); // We're not done reading headers.
|
| - } else if ((headers().content_length_status() ==
|
| + } else if ((headers_.content_length_status() ==
|
| BalsaHeadersEnums::VALID_CONTENT_LENGTH) &&
|
| - body_.size() != headers().content_length()) {
|
| + body_.size() != headers_.content_length()) {
|
| SendErrorResponse(); // Invalid content length
|
| } else {
|
| SendResponse();
|
| }
|
| }
|
|
|
| -void QuicSpdyServerStream::SendHeaders(
|
| - const BalsaHeaders& response_headers) {
|
| - SpdyHeaderBlock header_block =
|
| - SpdyUtils::ResponseHeadersToSpdyHeaders(response_headers);
|
| -
|
| - string headers_string;
|
| - headers_string = session()->compressor()->CompressHeaders(header_block);
|
| -
|
| - WriteOrBufferData(headers_string, false);
|
| -}
|
| -
|
| int QuicSpdyServerStream::ParseRequestHeaders() {
|
| size_t read_buf_len = static_cast<size_t>(read_buf_->offset());
|
| SpdyFramer framer(SPDY3);
|
| @@ -123,13 +112,22 @@ void QuicSpdyServerStream::SendErrorResponse() {
|
|
|
| void QuicSpdyServerStream:: SendHeadersAndBody(
|
| const BalsaHeaders& response_headers,
|
| - StringPiece data) {
|
| + StringPiece body) {
|
| // We only support SPDY and HTTP, and neither handles bidirectional streaming.
|
| if (!read_side_closed()) {
|
| CloseReadSide();
|
| }
|
| - SendHeaders(response_headers);
|
| - WriteOrBufferData(data, true);
|
| +
|
| + SpdyHeaderBlock header_block =
|
| + SpdyUtils::ResponseHeadersToSpdyHeaders(response_headers);
|
| +
|
| + string headers_string =
|
| + session()->compressor()->CompressHeaders(header_block);
|
| + WriteOrBufferData(headers_string, body.empty());
|
| +
|
| + if (!body.empty()) {
|
| + WriteOrBufferData(body, true);
|
| + }
|
| }
|
|
|
| } // namespace tools
|
|
|