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

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

Issue 1501493003: Pull HTTP/2 header parsing into utility method, from QuicSpdy{Client,Server}Streams. Not used in pr… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@108651883
Patch Set: Created 5 years 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/quic_spdy_client_stream.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 f10d040456dab7332fb368527a45d9a77d1c3b64..dffed6e0380d0c8def2d348ad0f008713d6ff74b 100644
--- a/net/tools/quic/quic_spdy_server_stream.cc
+++ b/net/tools/quic/quic_spdy_server_stream.cc
@@ -32,8 +32,9 @@ QuicSpdyServerStream::~QuicSpdyServerStream() {
void QuicSpdyServerStream::OnStreamHeadersComplete(bool fin, size_t frame_len) {
QuicSpdyStream::OnStreamHeadersComplete(fin, frame_len);
- if (!ParseRequestHeaders(decompressed_headers().data(),
- decompressed_headers().length())) {
+ if (!SpdyUtils::ParseHeaders(decompressed_headers().data(),
+ decompressed_headers().length(),
+ &content_length_, &request_headers_)) {
DVLOG(1) << "Invalid headers";
SendErrorResponse();
}
@@ -89,40 +90,6 @@ void QuicSpdyServerStream::OnDataAvailable() {
SendResponse();
}
-bool QuicSpdyServerStream::ParseRequestHeaders(const char* data,
- uint32 data_len) {
- DCHECK(headers_decompressed());
- SpdyFramer framer(HTTP2);
- if (!framer.ParseHeaderBlockInBuffer(data, data_len, &request_headers_) ||
- request_headers_.empty()) {
- return false; // Headers were invalid.
- }
-
- if (ContainsKey(request_headers_, "content-length")) {
- string delimiter;
- delimiter.push_back('\0');
- std::vector<string> values =
- base::SplitString(request_headers_["content-length"], delimiter,
- base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
-
- for (const string& value : values) {
- int new_value;
- if (!StringToInt(value, &new_value) || new_value < 0) {
- return false;
- }
- if (content_length_ < 0) {
- content_length_ = new_value;
- continue;
- }
- if (new_value != content_length_) {
- return false;
- }
- }
- }
-
- return true;
-}
-
void QuicSpdyServerStream::SendResponse() {
if (!ContainsKey(request_headers_, ":authority") ||
!ContainsKey(request_headers_, ":path")) {
« no previous file with comments | « net/tools/quic/quic_spdy_client_stream.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698