Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(656)

Unified Diff: net/tools/quic/spdy_utils.cc

Issue 14651009: Land Recent QUIC changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix integer constant is too large for 'unsigned long' type Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/tools/quic/spdy_utils.h ('k') | net/tools/quic/test_tools/quic_test_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « net/tools/quic/spdy_utils.h ('k') | net/tools/quic/test_tools/quic_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698