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

Side by Side Diff: net/tools/quic/quic_spdy_server_stream.cc

Issue 1036643003: Change the QuicInMemoryCache to store a SpdyHeaderBlock instead of BalsaHeaders. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/tools/quic/quic_spdy_server_stream.h" 5 #include "net/tools/quic/quic_spdy_server_stream.h"
6 6
7 #include "base/memory/singleton.h"
8 #include "net/quic/quic_session.h" 7 #include "net/quic/quic_session.h"
9 #include "net/spdy/spdy_framer.h" 8 #include "net/spdy/spdy_framer.h"
10 #include "net/tools/quic/quic_in_memory_cache.h" 9 #include "net/tools/quic/quic_in_memory_cache.h"
11 #include "net/tools/quic/spdy_utils.h" 10 #include "net/tools/quic/spdy_utils.h"
12 #include "url/gurl.h" 11 #include "url/gurl.h"
13 12
14 using base::StringPiece; 13 using base::StringPiece;
15 using std::string; 14 using std::string;
16 15
17 namespace net { 16 namespace net {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 DVLOG(1) << "Special response: ignoring request."; 114 DVLOG(1) << "Special response: ignoring request.";
116 return; 115 return;
117 } 116 }
118 117
119 DVLOG(1) << "Sending response for stream " << id(); 118 DVLOG(1) << "Sending response for stream " << id();
120 SendHeadersAndBody(response->headers(), response->body()); 119 SendHeadersAndBody(response->headers(), response->body());
121 } 120 }
122 121
123 void QuicSpdyServerStream::SendErrorResponse() { 122 void QuicSpdyServerStream::SendErrorResponse() {
124 DVLOG(1) << "Sending error response for stream " << id(); 123 DVLOG(1) << "Sending error response for stream " << id();
125 BalsaHeaders headers; 124 SpdyHeaderBlock headers;
126 headers.SetResponseFirstlineFromStringPieces( 125 headers[":version"] = "HTTP/1.1";
127 "HTTP/1.1", "500", "Server Error"); 126 headers[":status"] = "500 Server Error";
128 headers.ReplaceOrAppendHeader("content-length", "3"); 127 headers["content-length"] = "3";
129 SendHeadersAndBody(headers, "bad"); 128 SendHeadersAndBody(headers, "bad");
130 } 129 }
131 130
132 void QuicSpdyServerStream::SendHeadersAndBody( 131 void QuicSpdyServerStream::SendHeadersAndBody(
133 const BalsaHeaders& response_headers, 132 const SpdyHeaderBlock& response_headers,
134 StringPiece body) { 133 StringPiece body) {
135 // We only support SPDY and HTTP, and neither handles bidirectional streaming. 134 // We only support SPDY and HTTP, and neither handles bidirectional streaming.
136 if (!read_side_closed()) { 135 if (!read_side_closed()) {
137 CloseReadSide(); 136 CloseReadSide();
138 } 137 }
139 138
140 SpdyHeaderBlock header_block = 139 WriteHeaders(response_headers, body.empty(), nullptr);
141 SpdyUtils::ResponseHeadersToSpdyHeaders(response_headers);
142
143 WriteHeaders(header_block, body.empty(), nullptr);
144 140
145 if (!body.empty()) { 141 if (!body.empty()) {
146 WriteOrBufferData(body, true, nullptr); 142 WriteOrBufferData(body, true, nullptr);
147 } 143 }
148 } 144 }
149 145
150 } // namespace tools 146 } // namespace tools
151 } // namespace net 147 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698