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

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

Issue 612323013: QUIC - (no behavior change) s/NULL/nullptr/g in .../quic/... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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_client_session_test.cc ('k') | net/quic/quic_connection.h » ('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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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_config.h" 5 #include "net/quic/quic_config.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "net/quic/crypto/crypto_handshake_message.h" 10 #include "net/quic/crypto/crypto_handshake_message.h"
11 #include "net/quic/crypto/crypto_protocol.h" 11 #include "net/quic/crypto/crypto_protocol.h"
12 #include "net/quic/quic_flags.h" 12 #include "net/quic/quic_flags.h"
13 #include "net/quic/quic_utils.h" 13 #include "net/quic/quic_utils.h"
14 14
15 using std::min; 15 using std::min;
16 using std::string; 16 using std::string;
17 17
18 namespace net { 18 namespace net {
19 19
20 // Reads the value corresponding to |name_| from |msg| into |out|. If the 20 // Reads the value corresponding to |name_| from |msg| into |out|. If the
21 // |name_| is absent in |msg| and |presence| is set to OPTIONAL |out| is set 21 // |name_| is absent in |msg| and |presence| is set to OPTIONAL |out| is set
22 // to |default_value|. 22 // to |default_value|.
23 QuicErrorCode ReadUint32(const CryptoHandshakeMessage& msg, 23 QuicErrorCode ReadUint32(const CryptoHandshakeMessage& msg,
24 QuicTag tag, 24 QuicTag tag,
25 QuicConfigPresence presence, 25 QuicConfigPresence presence,
26 uint32 default_value, 26 uint32 default_value,
27 uint32* out, 27 uint32* out,
28 string* error_details) { 28 string* error_details) {
29 DCHECK(error_details != NULL); 29 DCHECK(error_details != nullptr);
30 QuicErrorCode error = msg.GetUint32(tag, out); 30 QuicErrorCode error = msg.GetUint32(tag, out);
31 switch (error) { 31 switch (error) {
32 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: 32 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
33 if (presence == PRESENCE_REQUIRED) { 33 if (presence == PRESENCE_REQUIRED) {
34 *error_details = "Missing " + QuicUtils::TagToString(tag); 34 *error_details = "Missing " + QuicUtils::TagToString(tag);
35 break; 35 break;
36 } 36 }
37 error = QUIC_NO_ERROR; 37 error = QUIC_NO_ERROR;
38 *out = default_value; 38 *out = default_value;
39 break; 39 break;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 } else { 89 } else {
90 out->SetValue(tag_, max_value_); 90 out->SetValue(tag_, max_value_);
91 } 91 }
92 } 92 }
93 93
94 QuicErrorCode QuicNegotiableUint32::ProcessPeerHello( 94 QuicErrorCode QuicNegotiableUint32::ProcessPeerHello(
95 const CryptoHandshakeMessage& peer_hello, 95 const CryptoHandshakeMessage& peer_hello,
96 HelloType hello_type, 96 HelloType hello_type,
97 string* error_details) { 97 string* error_details) {
98 DCHECK(!negotiated_); 98 DCHECK(!negotiated_);
99 DCHECK(error_details != NULL); 99 DCHECK(error_details != nullptr);
100 uint32 value; 100 uint32 value;
101 QuicErrorCode error = ReadUint32(peer_hello, 101 QuicErrorCode error = ReadUint32(peer_hello,
102 tag_, 102 tag_,
103 presence_, 103 presence_,
104 default_value_, 104 default_value_,
105 &value, 105 &value,
106 error_details); 106 error_details);
107 if (error != QUIC_NO_ERROR) { 107 if (error != QUIC_NO_ERROR) {
108 return error; 108 return error;
109 } 109 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 } else { 148 } else {
149 out->SetVector(tag_, possible_values_); 149 out->SetVector(tag_, possible_values_);
150 } 150 }
151 } 151 }
152 152
153 QuicErrorCode QuicNegotiableTag::ReadVector( 153 QuicErrorCode QuicNegotiableTag::ReadVector(
154 const CryptoHandshakeMessage& msg, 154 const CryptoHandshakeMessage& msg,
155 const QuicTag** out, 155 const QuicTag** out,
156 size_t* out_length, 156 size_t* out_length,
157 string* error_details) const { 157 string* error_details) const {
158 DCHECK(error_details != NULL); 158 DCHECK(error_details != nullptr);
159 QuicErrorCode error = msg.GetTaglist(tag_, out, out_length); 159 QuicErrorCode error = msg.GetTaglist(tag_, out, out_length);
160 switch (error) { 160 switch (error) {
161 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: 161 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
162 if (presence_ == PRESENCE_REQUIRED) { 162 if (presence_ == PRESENCE_REQUIRED) {
163 *error_details = "Missing " + QuicUtils::TagToString(tag_); 163 *error_details = "Missing " + QuicUtils::TagToString(tag_);
164 break; 164 break;
165 } 165 }
166 error = QUIC_NO_ERROR; 166 error = QUIC_NO_ERROR;
167 *out_length = 1; 167 *out_length = 1;
168 *out = &default_value_; 168 *out = &default_value_;
169 169
170 case QUIC_NO_ERROR: 170 case QUIC_NO_ERROR:
171 break; 171 break;
172 default: 172 default:
173 *error_details = "Bad " + QuicUtils::TagToString(tag_); 173 *error_details = "Bad " + QuicUtils::TagToString(tag_);
174 break; 174 break;
175 } 175 }
176 return error; 176 return error;
177 } 177 }
178 178
179 QuicErrorCode QuicNegotiableTag::ProcessPeerHello( 179 QuicErrorCode QuicNegotiableTag::ProcessPeerHello(
180 const CryptoHandshakeMessage& peer_hello, 180 const CryptoHandshakeMessage& peer_hello,
181 HelloType hello_type, 181 HelloType hello_type,
182 string* error_details) { 182 string* error_details) {
183 DCHECK(!negotiated_); 183 DCHECK(!negotiated_);
184 DCHECK(error_details != NULL); 184 DCHECK(error_details != nullptr);
185 const QuicTag* received_tags; 185 const QuicTag* received_tags;
186 size_t received_tags_length; 186 size_t received_tags_length;
187 QuicErrorCode error = ReadVector(peer_hello, &received_tags, 187 QuicErrorCode error = ReadVector(peer_hello, &received_tags,
188 &received_tags_length, error_details); 188 &received_tags_length, error_details);
189 if (error != QUIC_NO_ERROR) { 189 if (error != QUIC_NO_ERROR) {
190 return error; 190 return error;
191 } 191 }
192 192
193 if (hello_type == SERVER) { 193 if (hello_type == SERVER) {
194 if (received_tags_length != 1 || 194 if (received_tags_length != 1 ||
195 !ContainsQuicTag(possible_values_, *received_tags)) { 195 !ContainsQuicTag(possible_values_, *received_tags)) {
196 *error_details = "Invalid " + QuicUtils::TagToString(tag_); 196 *error_details = "Invalid " + QuicUtils::TagToString(tag_);
197 return QUIC_INVALID_NEGOTIATED_VALUE; 197 return QUIC_INVALID_NEGOTIATED_VALUE;
198 } 198 }
199 negotiated_tag_ = *received_tags; 199 negotiated_tag_ = *received_tags;
200 } else { 200 } else {
201 QuicTag negotiated_tag; 201 QuicTag negotiated_tag;
202 if (!QuicUtils::FindMutualTag(possible_values_, 202 if (!QuicUtils::FindMutualTag(possible_values_,
203 received_tags, 203 received_tags,
204 received_tags_length, 204 received_tags_length,
205 QuicUtils::LOCAL_PRIORITY, 205 QuicUtils::LOCAL_PRIORITY,
206 &negotiated_tag, 206 &negotiated_tag,
207 NULL)) { 207 nullptr)) {
208 *error_details = "Unsupported " + QuicUtils::TagToString(tag_); 208 *error_details = "Unsupported " + QuicUtils::TagToString(tag_);
209 return QUIC_CRYPTO_MESSAGE_PARAMETER_NO_OVERLAP; 209 return QUIC_CRYPTO_MESSAGE_PARAMETER_NO_OVERLAP;
210 } 210 }
211 negotiated_tag_ = negotiated_tag; 211 negotiated_tag_ = negotiated_tag;
212 } 212 }
213 213
214 negotiated_ = true; 214 negotiated_ = true;
215 return QUIC_NO_ERROR; 215 return QUIC_NO_ERROR;
216 } 216 }
217 217
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 void QuicFixedUint32::ToHandshakeMessage(CryptoHandshakeMessage* out) const { 255 void QuicFixedUint32::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
256 if (has_send_value_) { 256 if (has_send_value_) {
257 out->SetValue(tag_, send_value_); 257 out->SetValue(tag_, send_value_);
258 } 258 }
259 } 259 }
260 260
261 QuicErrorCode QuicFixedUint32::ProcessPeerHello( 261 QuicErrorCode QuicFixedUint32::ProcessPeerHello(
262 const CryptoHandshakeMessage& peer_hello, 262 const CryptoHandshakeMessage& peer_hello,
263 HelloType hello_type, 263 HelloType hello_type,
264 string* error_details) { 264 string* error_details) {
265 DCHECK(error_details != NULL); 265 DCHECK(error_details != nullptr);
266 QuicErrorCode error = peer_hello.GetUint32(tag_, &receive_value_); 266 QuicErrorCode error = peer_hello.GetUint32(tag_, &receive_value_);
267 switch (error) { 267 switch (error) {
268 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: 268 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
269 if (presence_ == PRESENCE_OPTIONAL) { 269 if (presence_ == PRESENCE_OPTIONAL) {
270 return QUIC_NO_ERROR; 270 return QUIC_NO_ERROR;
271 } 271 }
272 *error_details = "Missing " + QuicUtils::TagToString(tag_); 272 *error_details = "Missing " + QuicUtils::TagToString(tag_);
273 break; 273 break;
274 case QUIC_NO_ERROR: 274 case QUIC_NO_ERROR:
275 has_receive_value_ = true; 275 has_receive_value_ = true;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 void QuicFixedTag::ToHandshakeMessage(CryptoHandshakeMessage* out) const { 323 void QuicFixedTag::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
324 if (has_send_value_) { 324 if (has_send_value_) {
325 out->SetValue(tag_, send_value_); 325 out->SetValue(tag_, send_value_);
326 } 326 }
327 } 327 }
328 328
329 QuicErrorCode QuicFixedTag::ProcessPeerHello( 329 QuicErrorCode QuicFixedTag::ProcessPeerHello(
330 const CryptoHandshakeMessage& peer_hello, 330 const CryptoHandshakeMessage& peer_hello,
331 HelloType hello_type, 331 HelloType hello_type,
332 string* error_details) { 332 string* error_details) {
333 DCHECK(error_details != NULL); 333 DCHECK(error_details != nullptr);
334 QuicErrorCode error = peer_hello.GetUint32(tag_, &receive_value_); 334 QuicErrorCode error = peer_hello.GetUint32(tag_, &receive_value_);
335 switch (error) { 335 switch (error) {
336 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: 336 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
337 if (presence_ == PRESENCE_OPTIONAL) { 337 if (presence_ == PRESENCE_OPTIONAL) {
338 return QUIC_NO_ERROR; 338 return QUIC_NO_ERROR;
339 } 339 }
340 *error_details = "Missing " + QuicUtils::TagToString(tag_); 340 *error_details = "Missing " + QuicUtils::TagToString(tag_);
341 break; 341 break;
342 case QUIC_NO_ERROR: 342 case QUIC_NO_ERROR:
343 has_receive_value_ = true; 343 has_receive_value_ = true;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 void QuicFixedTagVector::ToHandshakeMessage(CryptoHandshakeMessage* out) const { 391 void QuicFixedTagVector::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
392 if (has_send_values_) { 392 if (has_send_values_) {
393 out->SetVector(tag_, send_values_); 393 out->SetVector(tag_, send_values_);
394 } 394 }
395 } 395 }
396 396
397 QuicErrorCode QuicFixedTagVector::ProcessPeerHello( 397 QuicErrorCode QuicFixedTagVector::ProcessPeerHello(
398 const CryptoHandshakeMessage& peer_hello, 398 const CryptoHandshakeMessage& peer_hello,
399 HelloType hello_type, 399 HelloType hello_type,
400 string* error_details) { 400 string* error_details) {
401 DCHECK(error_details != NULL); 401 DCHECK(error_details != nullptr);
402 const QuicTag* received_tags; 402 const QuicTag* received_tags;
403 size_t received_tags_length; 403 size_t received_tags_length;
404 QuicErrorCode error = 404 QuicErrorCode error =
405 peer_hello.GetTaglist(tag_, &received_tags, &received_tags_length); 405 peer_hello.GetTaglist(tag_, &received_tags, &received_tags_length);
406 switch (error) { 406 switch (error) {
407 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: 407 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
408 if (presence_ == PRESENCE_OPTIONAL) { 408 if (presence_ == PRESENCE_OPTIONAL) {
409 return QUIC_NO_ERROR; 409 return QUIC_NO_ERROR;
410 } 410 }
411 *error_details = "Missing " + QuicUtils::TagToString(tag_); 411 *error_details = "Missing " + QuicUtils::TagToString(tag_);
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out); 660 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out);
661 initial_session_flow_control_window_bytes_.ToHandshakeMessage(out); 661 initial_session_flow_control_window_bytes_.ToHandshakeMessage(out);
662 socket_receive_buffer_.ToHandshakeMessage(out); 662 socket_receive_buffer_.ToHandshakeMessage(out);
663 connection_options_.ToHandshakeMessage(out); 663 connection_options_.ToHandshakeMessage(out);
664 } 664 }
665 665
666 QuicErrorCode QuicConfig::ProcessPeerHello( 666 QuicErrorCode QuicConfig::ProcessPeerHello(
667 const CryptoHandshakeMessage& peer_hello, 667 const CryptoHandshakeMessage& peer_hello,
668 HelloType hello_type, 668 HelloType hello_type,
669 string* error_details) { 669 string* error_details) {
670 DCHECK(error_details != NULL); 670 DCHECK(error_details != nullptr);
671 671
672 QuicErrorCode error = QUIC_NO_ERROR; 672 QuicErrorCode error = QUIC_NO_ERROR;
673 if (error == QUIC_NO_ERROR) { 673 if (error == QUIC_NO_ERROR) {
674 error = congestion_feedback_.ProcessPeerHello( 674 error = congestion_feedback_.ProcessPeerHello(
675 peer_hello, hello_type, error_details); 675 peer_hello, hello_type, error_details);
676 } 676 }
677 if (error == QUIC_NO_ERROR) { 677 if (error == QUIC_NO_ERROR) {
678 error = idle_connection_state_lifetime_seconds_.ProcessPeerHello( 678 error = idle_connection_state_lifetime_seconds_.ProcessPeerHello(
679 peer_hello, hello_type, error_details); 679 peer_hello, hello_type, error_details);
680 } 680 }
(...skipping 30 matching lines...) Expand all
711 peer_hello, hello_type, error_details); 711 peer_hello, hello_type, error_details);
712 } 712 }
713 if (error == QUIC_NO_ERROR) { 713 if (error == QUIC_NO_ERROR) {
714 error = connection_options_.ProcessPeerHello( 714 error = connection_options_.ProcessPeerHello(
715 peer_hello, hello_type, error_details); 715 peer_hello, hello_type, error_details);
716 } 716 }
717 return error; 717 return error;
718 } 718 }
719 719
720 } // namespace net 720 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_client_session_test.cc ('k') | net/quic/quic_connection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698