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 |