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

Side by Side Diff: net/spdy/spdy_session.cc

Issue 2445113002: Add HTTP/2 error code NO_ERROR. (Closed)
Patch Set: Created 4 years, 1 month 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/spdy/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <utility> 10 #include <utility>
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 case RST_STREAM_SETTINGS_TIMEOUT: 406 case RST_STREAM_SETTINGS_TIMEOUT:
407 return STATUS_CODE_SETTINGS_TIMEOUT; 407 return STATUS_CODE_SETTINGS_TIMEOUT;
408 case RST_STREAM_CONNECT_ERROR: 408 case RST_STREAM_CONNECT_ERROR:
409 return STATUS_CODE_CONNECT_ERROR; 409 return STATUS_CODE_CONNECT_ERROR;
410 case RST_STREAM_ENHANCE_YOUR_CALM: 410 case RST_STREAM_ENHANCE_YOUR_CALM:
411 return STATUS_CODE_ENHANCE_YOUR_CALM; 411 return STATUS_CODE_ENHANCE_YOUR_CALM;
412 case RST_STREAM_INADEQUATE_SECURITY: 412 case RST_STREAM_INADEQUATE_SECURITY:
413 return STATUS_CODE_INADEQUATE_SECURITY; 413 return STATUS_CODE_INADEQUATE_SECURITY;
414 case RST_STREAM_HTTP_1_1_REQUIRED: 414 case RST_STREAM_HTTP_1_1_REQUIRED:
415 return STATUS_CODE_HTTP_1_1_REQUIRED; 415 return STATUS_CODE_HTTP_1_1_REQUIRED;
416 case RST_STREAM_NO_ERROR:
417 return STATUS_CODE_NO_ERROR;
416 default: 418 default:
417 NOTREACHED(); 419 NOTREACHED();
418 return static_cast<SpdyProtocolErrorDetails>(-1); 420 return static_cast<SpdyProtocolErrorDetails>(-1);
419 } 421 }
420 } 422 }
421 423
422 SpdyGoAwayStatus MapNetErrorToGoAwayStatus(Error err) { 424 SpdyGoAwayStatus MapNetErrorToGoAwayStatus(Error err) {
423 switch (err) { 425 switch (err) {
424 case OK: 426 case OK:
425 return GOAWAY_NO_ERROR; 427 return GOAWAY_NO_ERROR;
(...skipping 1894 matching lines...) Expand 10 before | Expand all | Expand 10 after
2320 2322
2321 ActiveStreamMap::iterator it = active_streams_.find(stream_id); 2323 ActiveStreamMap::iterator it = active_streams_.find(stream_id);
2322 if (it == active_streams_.end()) { 2324 if (it == active_streams_.end()) {
2323 // NOTE: it may just be that the stream was cancelled. 2325 // NOTE: it may just be that the stream was cancelled.
2324 LOG(WARNING) << "Received RST for invalid stream" << stream_id; 2326 LOG(WARNING) << "Received RST for invalid stream" << stream_id;
2325 return; 2327 return;
2326 } 2328 }
2327 2329
2328 CHECK_EQ(it->second.stream->stream_id(), stream_id); 2330 CHECK_EQ(it->second.stream->stream_id(), stream_id);
2329 2331
2330 if (status == 0) { 2332 if (status == RST_STREAM_NO_ERROR) {
xunjieli 2016/10/25 17:12:49 The new code got rid of handling of status == 0 (R
Bence 2016/10/25 22:11:24 I changed the value of RST_STREAM_NO_ERROR to 0, s
2331 it->second.stream->OnDataReceived(std::unique_ptr<SpdyBuffer>()); 2333 CloseActiveStreamIterator(it, ERR_SPDY_RST_STREAM_NO_ERROR_RECEIVED);
2332 } else if (status == RST_STREAM_REFUSED_STREAM) { 2334 } else if (status == RST_STREAM_REFUSED_STREAM) {
2333 CloseActiveStreamIterator(it, ERR_SPDY_SERVER_REFUSED_STREAM); 2335 CloseActiveStreamIterator(it, ERR_SPDY_SERVER_REFUSED_STREAM);
2334 } else if (status == RST_STREAM_HTTP_1_1_REQUIRED) { 2336 } else if (status == RST_STREAM_HTTP_1_1_REQUIRED) {
2335 // TODO(bnc): Record histogram with number of open streams capped at 50. 2337 // TODO(bnc): Record histogram with number of open streams capped at 50.
2336 it->second.stream->LogStreamError( 2338 it->second.stream->LogStreamError(
2337 ERR_HTTP_1_1_REQUIRED, 2339 ERR_HTTP_1_1_REQUIRED,
2338 base::StringPrintf( 2340 base::StringPrintf(
2339 "SPDY session closed because of stream with status: %d", status)); 2341 "SPDY session closed because of stream with status: %d", status));
2340 DoDrainSession(ERR_HTTP_1_1_REQUIRED, "HTTP_1_1_REQUIRED for stream."); 2342 DoDrainSession(ERR_HTTP_1_1_REQUIRED, "HTTP_1_1_REQUIRED for stream.");
2341 } else { 2343 } else {
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
3116 if (!queue->empty()) { 3118 if (!queue->empty()) {
3117 SpdyStreamId stream_id = queue->front(); 3119 SpdyStreamId stream_id = queue->front();
3118 queue->pop_front(); 3120 queue->pop_front();
3119 return stream_id; 3121 return stream_id;
3120 } 3122 }
3121 } 3123 }
3122 return 0; 3124 return 0;
3123 } 3125 }
3124 3126
3125 } // namespace net 3127 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698