| Index: net/tools/quic/spdy_utils.cc
|
| diff --git a/net/tools/quic/spdy_utils.cc b/net/tools/quic/spdy_utils.cc
|
| index 0c3273b84f2930d539b8c5df916f28c29ee427dc..6321f6dc6a3f5455e56778ecec841b9598fa3dea 100644
|
| --- a/net/tools/quic/spdy_utils.cc
|
| +++ b/net/tools/quic/spdy_utils.cc
|
| @@ -96,7 +96,8 @@ void PopulateSpdyResponseHeaderBlock(const BalsaHeaders& headers,
|
| PopulateSpdyHeaderBlock(headers, block, true);
|
| }
|
|
|
| -string SpdyUtils::SerializeRequestHeaders(
|
| +// static
|
| +SpdyHeaderBlock SpdyUtils::RequestHeadersToSpdyHeaders(
|
| const BalsaHeaders& request_headers) {
|
| string scheme;
|
| string host_and_port;
|
| @@ -129,24 +130,38 @@ string SpdyUtils::SerializeRequestHeaders(
|
| if (block.find("host") != block.end()) {
|
| block.erase(block.find("host"));
|
| }
|
| + return block;
|
| +}
|
|
|
| - int length = SpdyFramer::GetSerializedLength(kSpdyVersion3, &block);
|
| - SpdyFrameBuilder builder(length);
|
| - SpdyFramer::WriteHeaderBlock(&builder, kSpdyVersion3, &block);
|
| - scoped_ptr<SpdyFrame> headers(builder.take());
|
| - return string(headers->data(), length);
|
| +// static
|
| +string SpdyUtils::SerializeRequestHeaders(const BalsaHeaders& request_headers) {
|
| + SpdyHeaderBlock block = RequestHeadersToSpdyHeaders(request_headers);
|
| + return SerializeUncompressedHeaders(block);
|
| }
|
|
|
| -string SpdyUtils::SerializeResponseHeaders(
|
| +// static
|
| +SpdyHeaderBlock SpdyUtils::ResponseHeadersToSpdyHeaders(
|
| const BalsaHeaders& response_headers) {
|
| SpdyHeaderBlock block;
|
| PopulateSpdyResponseHeaderBlock(response_headers, &block);
|
| + return block;
|
| +}
|
| +
|
| +// static
|
| +string SpdyUtils::SerializeResponseHeaders(
|
| + const BalsaHeaders& response_headers) {
|
| + SpdyHeaderBlock block = ResponseHeadersToSpdyHeaders(response_headers);
|
| +
|
| + return SerializeUncompressedHeaders(block);
|
| +}
|
|
|
| - int length = SpdyFramer::GetSerializedLength(kSpdyVersion3, &block);
|
| +// static
|
| +string SpdyUtils::SerializeUncompressedHeaders(const SpdyHeaderBlock& headers) {
|
| + int length = SpdyFramer::GetSerializedLength(kSpdyVersion3, &headers);
|
| SpdyFrameBuilder builder(length);
|
| - SpdyFramer::WriteHeaderBlock(&builder, kSpdyVersion3, &block);
|
| - scoped_ptr<SpdyFrame> headers(builder.take());
|
| - return string(headers->data(), length);
|
| + SpdyFramer::WriteHeaderBlock(&builder, kSpdyVersion3, &headers);
|
| + scoped_ptr<SpdyFrame> block(builder.take());
|
| + return string(block->data(), length);
|
| }
|
|
|
| bool IsSpecialSpdyHeader(SpdyHeaderBlock::const_iterator header,
|
|
|