Chromium Code Reviews| OLD | NEW |
|---|---|
| 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_protocol.h" | 5 #include "net/spdy/spdy_protocol.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "net/spdy/spdy_bug_tracker.h" | 8 #include "net/spdy/spdy_bug_tracker.h" |
| 9 | 9 |
| 10 namespace net { | 10 namespace net { |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 121 return true; | 121 return true; |
| 122 case SETTINGS_MAX_HEADER_LIST_SIZE: | 122 case SETTINGS_MAX_HEADER_LIST_SIZE: |
| 123 *settings_id_string = "SETTINGS_MAX_HEADER_LIST_SIZE"; | 123 *settings_id_string = "SETTINGS_MAX_HEADER_LIST_SIZE"; |
| 124 return true; | 124 return true; |
| 125 } | 125 } |
| 126 | 126 |
| 127 *settings_id_string = "SETTINGS_UNKNOWN"; | 127 *settings_id_string = "SETTINGS_UNKNOWN"; |
| 128 return false; | 128 return false; |
| 129 } | 129 } |
| 130 | 130 |
| 131 SpdyRstStreamStatus ParseRstStreamStatus(int rst_stream_status_field) { | 131 SpdyErrorCode ParseErrorCode(uint32_t wire_error_code) { |
| 132 if (rst_stream_status_field < RST_STREAM_MIN || | 132 if (wire_error_code > ERROR_CODE_MAX) { |
| 133 rst_stream_status_field > RST_STREAM_MAX) { | 133 return ERROR_CODE_INTERNAL_ERROR; |
| 134 return RST_STREAM_INTERNAL_ERROR; | |
| 135 } | 134 } |
| 136 | 135 |
| 137 return static_cast<SpdyRstStreamStatus>(rst_stream_status_field); | 136 return static_cast<SpdyErrorCode>(wire_error_code); |
| 138 } | 137 } |
| 139 | 138 |
| 140 SpdyGoAwayStatus ParseGoAwayStatus(int goaway_status_field) { | 139 const char* ErrorCodeToString(SpdyErrorCode error_code) { |
|
Bence
2017/02/02 15:12:25
This method in only introduced in server change 14
diannahu
2017/02/02 15:58:09
Got it, will merge after 145087791 is merged. (I a
Bence
2017/02/02 16:12:00
It's really up to you. You can include 145536832
| |
| 141 if (goaway_status_field < GOAWAY_MIN || goaway_status_field > GOAWAY_MAX) { | 140 switch (error_code) { |
| 142 return GOAWAY_INTERNAL_ERROR; | 141 case ERROR_CODE_NO_ERROR: |
| 142 return "NO_ERROR"; | |
| 143 case ERROR_CODE_PROTOCOL_ERROR: | |
| 144 return "PROTOCOL_ERROR"; | |
| 145 case ERROR_CODE_INTERNAL_ERROR: | |
| 146 return "INTERNAL_ERROR"; | |
| 147 case ERROR_CODE_FLOW_CONTROL_ERROR: | |
| 148 return "FLOW_CONTROL_ERROR"; | |
| 149 case ERROR_CODE_SETTINGS_TIMEOUT: | |
| 150 return "SETTINGS_TIMEOUT"; | |
| 151 case ERROR_CODE_STREAM_CLOSED: | |
| 152 return "STREAM_CLOSED"; | |
| 153 case ERROR_CODE_FRAME_SIZE_ERROR: | |
| 154 return "FRAME_SIZE_ERROR"; | |
| 155 case ERROR_CODE_REFUSED_STREAM: | |
| 156 return "REFUSED_STREAM"; | |
| 157 case ERROR_CODE_CANCEL: | |
| 158 return "CANCEL"; | |
| 159 case ERROR_CODE_COMPRESSION_ERROR: | |
| 160 return "COMPRESSION_ERROR"; | |
| 161 case ERROR_CODE_CONNECT_ERROR: | |
| 162 return "CONNECT_ERROR"; | |
| 163 case ERROR_CODE_ENHANCE_YOUR_CALM: | |
| 164 return "ENHANCE_YOUR_CALM"; | |
| 165 case ERROR_CODE_INADEQUATE_SECURITY: | |
| 166 return "INADEQUATE_SECURITY"; | |
| 167 case ERROR_CODE_HTTP_1_1_REQUIRED: | |
| 168 return "HTTP_1_1_REQUIRED"; | |
| 143 } | 169 } |
| 144 | 170 return "UNKNOWN_ERROR_CODE"; |
| 145 return static_cast<SpdyGoAwayStatus>(goaway_status_field); | |
| 146 } | 171 } |
| 147 | 172 |
| 148 const char* const kHttp2Npn = "h2"; | 173 const char* const kHttp2Npn = "h2"; |
| 149 | 174 |
| 150 SpdyFrameWithHeaderBlockIR::SpdyFrameWithHeaderBlockIR( | 175 SpdyFrameWithHeaderBlockIR::SpdyFrameWithHeaderBlockIR( |
| 151 SpdyStreamId stream_id, | 176 SpdyStreamId stream_id, |
| 152 SpdyHeaderBlock header_block) | 177 SpdyHeaderBlock header_block) |
| 153 : SpdyFrameWithFinIR(stream_id), header_block_(std::move(header_block)) {} | 178 : SpdyFrameWithFinIR(stream_id), header_block_(std::move(header_block)) {} |
| 154 | 179 |
| 155 SpdyFrameWithHeaderBlockIR::~SpdyFrameWithHeaderBlockIR() {} | 180 SpdyFrameWithHeaderBlockIR::~SpdyFrameWithHeaderBlockIR() {} |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 181 padded_(false), | 206 padded_(false), |
| 182 padding_payload_len_(0) {} | 207 padding_payload_len_(0) {} |
| 183 | 208 |
| 184 SpdyDataIR::~SpdyDataIR() {} | 209 SpdyDataIR::~SpdyDataIR() {} |
| 185 | 210 |
| 186 void SpdyDataIR::Visit(SpdyFrameVisitor* visitor) const { | 211 void SpdyDataIR::Visit(SpdyFrameVisitor* visitor) const { |
| 187 return visitor->VisitData(*this); | 212 return visitor->VisitData(*this); |
| 188 } | 213 } |
| 189 | 214 |
| 190 SpdyRstStreamIR::SpdyRstStreamIR(SpdyStreamId stream_id, | 215 SpdyRstStreamIR::SpdyRstStreamIR(SpdyStreamId stream_id, |
| 191 SpdyRstStreamStatus status) | 216 SpdyErrorCode error_code) |
| 192 : SpdyFrameWithStreamIdIR(stream_id) { | 217 : SpdyFrameWithStreamIdIR(stream_id) { |
| 193 set_status(status); | 218 set_error_code(error_code); |
| 194 } | 219 } |
| 195 | 220 |
| 196 SpdyRstStreamIR::~SpdyRstStreamIR() {} | 221 SpdyRstStreamIR::~SpdyRstStreamIR() {} |
| 197 | 222 |
| 198 void SpdyRstStreamIR::Visit(SpdyFrameVisitor* visitor) const { | 223 void SpdyRstStreamIR::Visit(SpdyFrameVisitor* visitor) const { |
| 199 return visitor->VisitRstStream(*this); | 224 return visitor->VisitRstStream(*this); |
| 200 } | 225 } |
| 201 | 226 |
| 202 SpdySettingsIR::SpdySettingsIR() : is_ack_(false) {} | 227 SpdySettingsIR::SpdySettingsIR() : is_ack_(false) {} |
| 203 | 228 |
| 204 SpdySettingsIR::~SpdySettingsIR() {} | 229 SpdySettingsIR::~SpdySettingsIR() {} |
| 205 | 230 |
| 206 void SpdySettingsIR::Visit(SpdyFrameVisitor* visitor) const { | 231 void SpdySettingsIR::Visit(SpdyFrameVisitor* visitor) const { |
| 207 return visitor->VisitSettings(*this); | 232 return visitor->VisitSettings(*this); |
| 208 } | 233 } |
| 209 | 234 |
| 210 void SpdyPingIR::Visit(SpdyFrameVisitor* visitor) const { | 235 void SpdyPingIR::Visit(SpdyFrameVisitor* visitor) const { |
| 211 return visitor->VisitPing(*this); | 236 return visitor->VisitPing(*this); |
| 212 } | 237 } |
| 213 | 238 |
| 214 SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id, | 239 SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id, |
| 215 SpdyGoAwayStatus status, | 240 SpdyErrorCode error_code, |
| 216 base::StringPiece description) | 241 base::StringPiece description) |
| 217 : description_(description) { | 242 : description_(description) { |
| 218 set_last_good_stream_id(last_good_stream_id); | 243 set_last_good_stream_id(last_good_stream_id); |
| 219 set_status(status); | 244 set_error_code(error_code); |
| 220 } | 245 } |
| 221 | 246 |
| 222 SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id, | 247 SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id, |
| 223 SpdyGoAwayStatus status, | 248 SpdyErrorCode error_code, |
| 224 const char* description) | 249 const char* description) |
| 225 : SpdyGoAwayIR(last_good_stream_id, | 250 : SpdyGoAwayIR(last_good_stream_id, |
| 226 status, | 251 error_code, |
| 227 base::StringPiece(description)) {} | 252 base::StringPiece(description)) {} |
| 228 | 253 |
| 229 SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id, | 254 SpdyGoAwayIR::SpdyGoAwayIR(SpdyStreamId last_good_stream_id, |
| 230 SpdyGoAwayStatus status, | 255 SpdyErrorCode error_code, |
| 231 std::string description) | 256 std::string description) |
| 232 : description_store_(std::move(description)), | 257 : description_store_(std::move(description)), |
| 233 description_(description_store_) { | 258 description_(description_store_) { |
| 234 set_last_good_stream_id(last_good_stream_id); | 259 set_last_good_stream_id(last_good_stream_id); |
| 235 set_status(status); | 260 set_error_code(error_code); |
| 236 } | 261 } |
| 237 | 262 |
| 238 SpdyGoAwayIR::~SpdyGoAwayIR() {} | 263 SpdyGoAwayIR::~SpdyGoAwayIR() {} |
| 239 | 264 |
| 240 SpdyContinuationIR::SpdyContinuationIR(SpdyStreamId stream_id) | 265 SpdyContinuationIR::SpdyContinuationIR(SpdyStreamId stream_id) |
| 241 : SpdyFrameWithStreamIdIR(stream_id), end_headers_(false) { | 266 : SpdyFrameWithStreamIdIR(stream_id), end_headers_(false) { |
| 242 encoding_ = base::MakeUnique<std::string>(); | 267 encoding_ = base::MakeUnique<std::string>(); |
| 243 } | 268 } |
| 244 | 269 |
| 245 SpdyContinuationIR::~SpdyContinuationIR() {} | 270 SpdyContinuationIR::~SpdyContinuationIR() {} |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 277 | 302 |
| 278 void SpdyAltSvcIR::Visit(SpdyFrameVisitor* visitor) const { | 303 void SpdyAltSvcIR::Visit(SpdyFrameVisitor* visitor) const { |
| 279 return visitor->VisitAltSvc(*this); | 304 return visitor->VisitAltSvc(*this); |
| 280 } | 305 } |
| 281 | 306 |
| 282 void SpdyPriorityIR::Visit(SpdyFrameVisitor* visitor) const { | 307 void SpdyPriorityIR::Visit(SpdyFrameVisitor* visitor) const { |
| 283 return visitor->VisitPriority(*this); | 308 return visitor->VisitPriority(*this); |
| 284 } | 309 } |
| 285 | 310 |
| 286 } // namespace net | 311 } // namespace net |
| OLD | NEW |