| 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 |