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

Side by Side Diff: net/quic/quic_headers_stream.cc

Issue 1009543004: Create a Perspective enum to use instead of a bool is_server to improve (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added NET_EXPORT_PRIVATE to fix compiler error 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
« no previous file with comments | « net/quic/quic_framer_test.cc ('k') | net/quic/quic_headers_stream_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/quic/quic_headers_stream.h" 5 #include "net/quic/quic_headers_stream.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "net/quic/quic_session.h" 8 #include "net/quic/quic_session.h"
9 9
10 using base::StringPiece; 10 using base::StringPiece;
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 QuicHeadersStream::~QuicHeadersStream() {} 215 QuicHeadersStream::~QuicHeadersStream() {}
216 216
217 size_t QuicHeadersStream::WriteHeaders( 217 size_t QuicHeadersStream::WriteHeaders(
218 QuicStreamId stream_id, 218 QuicStreamId stream_id,
219 const SpdyHeaderBlock& headers, 219 const SpdyHeaderBlock& headers,
220 bool fin, 220 bool fin,
221 QuicPriority priority, 221 QuicPriority priority,
222 QuicAckNotifier::DelegateInterface* ack_notifier_delegate) { 222 QuicAckNotifier::DelegateInterface* ack_notifier_delegate) {
223 scoped_ptr<SpdySerializedFrame> frame; 223 scoped_ptr<SpdySerializedFrame> frame;
224 if (spdy_framer_->protocol_version() == SPDY3) { 224 if (spdy_framer_->protocol_version() == SPDY3) {
225 if (session()->is_server()) { 225 if (session()->perspective() == Perspective::IS_SERVER) {
226 SpdySynReplyIR syn_reply(stream_id); 226 SpdySynReplyIR syn_reply(stream_id);
227 syn_reply.set_name_value_block(headers); 227 syn_reply.set_name_value_block(headers);
228 syn_reply.set_fin(fin); 228 syn_reply.set_fin(fin);
229 frame.reset(spdy_framer_->SerializeFrame(syn_reply)); 229 frame.reset(spdy_framer_->SerializeFrame(syn_reply));
230 } else { 230 } else {
231 SpdySynStreamIR syn_stream(stream_id); 231 SpdySynStreamIR syn_stream(stream_id);
232 syn_stream.set_name_value_block(headers); 232 syn_stream.set_name_value_block(headers);
233 syn_stream.set_fin(fin); 233 syn_stream.set_fin(fin);
234 syn_stream.set_priority(priority); 234 syn_stream.set_priority(priority);
235 frame.reset(spdy_framer_->SerializeFrame(syn_stream)); 235 frame.reset(spdy_framer_->SerializeFrame(syn_stream));
236 } 236 }
237 } else { 237 } else {
238 SpdyHeadersIR headers_frame(stream_id); 238 SpdyHeadersIR headers_frame(stream_id);
239 headers_frame.set_name_value_block(headers); 239 headers_frame.set_name_value_block(headers);
240 headers_frame.set_fin(fin); 240 headers_frame.set_fin(fin);
241 if (!session()->is_server()) { 241 if (session()->perspective() == Perspective::IS_CLIENT) {
242 headers_frame.set_has_priority(true); 242 headers_frame.set_has_priority(true);
243 headers_frame.set_priority(priority); 243 headers_frame.set_priority(priority);
244 } 244 }
245 frame.reset(spdy_framer_->SerializeFrame(headers_frame)); 245 frame.reset(spdy_framer_->SerializeFrame(headers_frame));
246 } 246 }
247 WriteOrBufferData(StringPiece(frame->data(), frame->size()), false, 247 WriteOrBufferData(StringPiece(frame->data(), frame->size()), false,
248 ack_notifier_delegate); 248 ack_notifier_delegate);
249 return frame->size(); 249 return frame->size();
250 } 250 }
251 251
(...skipping 16 matching lines...) Expand all
268 } 268 }
269 spdy_framer_.reset(new SpdyFramer(spdy_version)); 269 spdy_framer_.reset(new SpdyFramer(spdy_version));
270 spdy_framer_visitor_.reset(new SpdyFramerVisitor(spdy_version, this)); 270 spdy_framer_visitor_.reset(new SpdyFramerVisitor(spdy_version, this));
271 spdy_framer_->set_visitor(spdy_framer_visitor_.get()); 271 spdy_framer_->set_visitor(spdy_framer_visitor_.get());
272 spdy_framer_->set_debug_visitor(spdy_framer_visitor_.get()); 272 spdy_framer_->set_debug_visitor(spdy_framer_visitor_.get());
273 } 273 }
274 274
275 void QuicHeadersStream::OnSynStream(SpdyStreamId stream_id, 275 void QuicHeadersStream::OnSynStream(SpdyStreamId stream_id,
276 SpdyPriority priority, 276 SpdyPriority priority,
277 bool fin) { 277 bool fin) {
278 if (!session()->is_server()) { 278 if (session()->perspective() == Perspective::IS_CLIENT) {
279 CloseConnectionWithDetails( 279 CloseConnectionWithDetails(
280 QUIC_INVALID_HEADERS_STREAM_DATA, 280 QUIC_INVALID_HEADERS_STREAM_DATA,
281 "SPDY SYN_STREAM frame received at the client"); 281 "SPDY SYN_STREAM frame received at the client");
282 return; 282 return;
283 } 283 }
284 DCHECK_EQ(kInvalidStreamId, stream_id_); 284 DCHECK_EQ(kInvalidStreamId, stream_id_);
285 stream_id_ = stream_id; 285 stream_id_ = stream_id;
286 fin_ = fin; 286 fin_ = fin;
287 session()->OnStreamHeadersPriority(stream_id, priority); 287 session()->OnStreamHeadersPriority(stream_id, priority);
288 } 288 }
289 289
290 void QuicHeadersStream::OnSynReply(SpdyStreamId stream_id, bool fin) { 290 void QuicHeadersStream::OnSynReply(SpdyStreamId stream_id, bool fin) {
291 if (session()->is_server()) { 291 if (session()->perspective() == Perspective::IS_SERVER) {
292 CloseConnectionWithDetails( 292 CloseConnectionWithDetails(
293 QUIC_INVALID_HEADERS_STREAM_DATA, 293 QUIC_INVALID_HEADERS_STREAM_DATA,
294 "SPDY SYN_REPLY frame received at the server"); 294 "SPDY SYN_REPLY frame received at the server");
295 return; 295 return;
296 } 296 }
297 DCHECK_EQ(kInvalidStreamId, stream_id_); 297 DCHECK_EQ(kInvalidStreamId, stream_id_);
298 stream_id_ = stream_id; 298 stream_id_ = stream_id;
299 fin_ = fin; 299 fin_ = fin;
300 } 300 }
301 301
(...skipping 22 matching lines...) Expand all
324 DCHECK_EQ(0u, frame_len_); 324 DCHECK_EQ(0u, frame_len_);
325 } 325 }
326 frame_len_ += frame_len; 326 frame_len_ += frame_len;
327 } 327 }
328 328
329 bool QuicHeadersStream::IsConnected() { 329 bool QuicHeadersStream::IsConnected() {
330 return session()->connection()->connected(); 330 return session()->connection()->connected();
331 } 331 }
332 332
333 } // namespace net 333 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_framer_test.cc ('k') | net/quic/quic_headers_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698