OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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/core/quic_spdy_session.h" | 5 #include "net/quic/core/quic_spdy_session.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "net/quic/core/quic_bug_tracker.h" | 9 #include "net/quic/core/quic_bug_tracker.h" |
10 #include "net/quic/core/quic_headers_stream.h" | 10 #include "net/quic/core/quic_headers_stream.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 } else { | 39 } else { |
40 QuicStreamId headers_stream_id = GetNextOutgoingStreamId(); | 40 QuicStreamId headers_stream_id = GetNextOutgoingStreamId(); |
41 DCHECK_EQ(headers_stream_id, kHeadersStreamId); | 41 DCHECK_EQ(headers_stream_id, kHeadersStreamId); |
42 } | 42 } |
43 | 43 |
44 headers_stream_.reset(new QuicHeadersStream(this)); | 44 headers_stream_.reset(new QuicHeadersStream(this)); |
45 DCHECK_EQ(kHeadersStreamId, headers_stream_->id()); | 45 DCHECK_EQ(kHeadersStreamId, headers_stream_->id()); |
46 static_streams()[kHeadersStreamId] = headers_stream_.get(); | 46 static_streams()[kHeadersStreamId] = headers_stream_.get(); |
47 } | 47 } |
48 | 48 |
49 void QuicSpdySession::OnStreamHeaders(QuicStreamId stream_id, | |
50 StringPiece headers_data) { | |
51 QuicSpdyStream* stream = GetSpdyDataStream(stream_id); | |
52 if (!stream) { | |
53 // It's quite possible to receive headers after a stream has been reset. | |
54 return; | |
55 } | |
56 stream->OnStreamHeaders(headers_data); | |
57 } | |
58 | |
59 void QuicSpdySession::OnStreamHeadersPriority(QuicStreamId stream_id, | 49 void QuicSpdySession::OnStreamHeadersPriority(QuicStreamId stream_id, |
60 SpdyPriority priority) { | 50 SpdyPriority priority) { |
61 QuicSpdyStream* stream = GetSpdyDataStream(stream_id); | 51 QuicSpdyStream* stream = GetSpdyDataStream(stream_id); |
62 if (!stream) { | 52 if (!stream) { |
63 // It's quite possible to receive headers after a stream has been reset. | 53 // It's quite possible to receive headers after a stream has been reset. |
64 return; | 54 return; |
65 } | 55 } |
66 stream->OnStreamHeadersPriority(priority); | 56 stream->OnStreamHeadersPriority(priority); |
67 } | 57 } |
68 | 58 |
69 void QuicSpdySession::OnStreamHeadersComplete(QuicStreamId stream_id, | |
70 bool fin, | |
71 size_t frame_len) { | |
72 QuicSpdyStream* stream = GetSpdyDataStream(stream_id); | |
73 if (!stream) { | |
74 // It's quite possible to receive headers after a stream has been reset. | |
75 return; | |
76 } | |
77 stream->OnStreamHeadersComplete(fin, frame_len); | |
78 } | |
79 | |
80 void QuicSpdySession::OnStreamHeaderList(QuicStreamId stream_id, | 59 void QuicSpdySession::OnStreamHeaderList(QuicStreamId stream_id, |
81 bool fin, | 60 bool fin, |
82 size_t frame_len, | 61 size_t frame_len, |
83 const QuicHeaderList& header_list) { | 62 const QuicHeaderList& header_list) { |
84 QuicSpdyStream* stream = GetSpdyDataStream(stream_id); | 63 QuicSpdyStream* stream = GetSpdyDataStream(stream_id); |
85 if (!stream) { | 64 if (!stream) { |
86 // It's quite possible to receive headers after a stream has been reset. | 65 // It's quite possible to receive headers after a stream has been reset. |
87 return; | 66 return; |
88 } | 67 } |
89 stream->OnStreamHeaderList(fin, frame_len, header_list); | 68 stream->OnStreamHeaderList(fin, frame_len, header_list); |
(...skipping 25 matching lines...) Expand all Loading... |
115 void QuicSpdySession::UpdateStreamPriority(QuicStreamId id, | 94 void QuicSpdySession::UpdateStreamPriority(QuicStreamId id, |
116 SpdyPriority new_priority) { | 95 SpdyPriority new_priority) { |
117 write_blocked_streams()->UpdateStreamPriority(id, new_priority); | 96 write_blocked_streams()->UpdateStreamPriority(id, new_priority); |
118 } | 97 } |
119 | 98 |
120 QuicSpdyStream* QuicSpdySession::GetSpdyDataStream( | 99 QuicSpdyStream* QuicSpdySession::GetSpdyDataStream( |
121 const QuicStreamId stream_id) { | 100 const QuicStreamId stream_id) { |
122 return static_cast<QuicSpdyStream*>(GetOrCreateDynamicStream(stream_id)); | 101 return static_cast<QuicSpdyStream*>(GetOrCreateDynamicStream(stream_id)); |
123 } | 102 } |
124 | 103 |
125 void QuicSpdySession::OnPromiseHeaders(QuicStreamId stream_id, | |
126 StringPiece headers_data) { | |
127 string error = "OnPromiseHeaders should be overriden in client code."; | |
128 QUIC_BUG << error; | |
129 connection()->CloseConnection(QUIC_INTERNAL_ERROR, error, | |
130 ConnectionCloseBehavior::SILENT_CLOSE); | |
131 } | |
132 | |
133 void QuicSpdySession::OnPromiseHeadersComplete(QuicStreamId stream_id, | |
134 QuicStreamId promised_stream_id, | |
135 size_t frame_len) { | |
136 string error = "OnPromiseHeadersComplete should be overriden in client code."; | |
137 QUIC_BUG << error; | |
138 connection()->CloseConnection(QUIC_INTERNAL_ERROR, error, | |
139 ConnectionCloseBehavior::SILENT_CLOSE); | |
140 } | |
141 | |
142 void QuicSpdySession::OnPromiseHeaderList(QuicStreamId stream_id, | 104 void QuicSpdySession::OnPromiseHeaderList(QuicStreamId stream_id, |
143 QuicStreamId promised_stream_id, | 105 QuicStreamId promised_stream_id, |
144 size_t frame_len, | 106 size_t frame_len, |
145 const QuicHeaderList& header_list) { | 107 const QuicHeaderList& header_list) { |
146 string error = "OnPromiseHeaderList should be overriden in client code."; | 108 string error = "OnPromiseHeaderList should be overriden in client code."; |
147 QUIC_BUG << error; | 109 QUIC_BUG << error; |
148 connection()->CloseConnection(QUIC_INTERNAL_ERROR, error, | 110 connection()->CloseConnection(QUIC_INTERNAL_ERROR, error, |
149 ConnectionCloseBehavior::SILENT_CLOSE); | 111 ConnectionCloseBehavior::SILENT_CLOSE); |
150 } | 112 } |
151 | 113 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 DVLOG(1) << "De-encapsulating DATA frame for stream " << stream_id | 146 DVLOG(1) << "De-encapsulating DATA frame for stream " << stream_id |
185 << " offset " << offset << " len " << len << " fin " << fin; | 147 << " offset " << offset << " len " << len << " fin " << fin; |
186 OnStreamFrame(frame); | 148 OnStreamFrame(frame); |
187 } | 149 } |
188 | 150 |
189 bool QuicSpdySession::ShouldReleaseHeadersStreamSequencerBuffer() { | 151 bool QuicSpdySession::ShouldReleaseHeadersStreamSequencerBuffer() { |
190 return false; | 152 return false; |
191 } | 153 } |
192 | 154 |
193 } // namespace net | 155 } // namespace net |
OLD | NEW |