OLD | NEW |
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/core/quic_config.h" | 5 #include "net/quic/core/quic_config.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "net/quic/core/crypto/crypto_handshake_message.h" | 9 #include "net/quic/core/crypto/crypto_handshake_message.h" |
10 #include "net/quic/core/crypto/crypto_protocol.h" | 10 #include "net/quic/core/crypto/crypto_protocol.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 if (has_send_values_) { | 225 if (has_send_values_) { |
226 out->SetVector(tag_, send_values_); | 226 out->SetVector(tag_, send_values_); |
227 } | 227 } |
228 } | 228 } |
229 | 229 |
230 QuicErrorCode QuicFixedTagVector::ProcessPeerHello( | 230 QuicErrorCode QuicFixedTagVector::ProcessPeerHello( |
231 const CryptoHandshakeMessage& peer_hello, | 231 const CryptoHandshakeMessage& peer_hello, |
232 HelloType hello_type, | 232 HelloType hello_type, |
233 string* error_details) { | 233 string* error_details) { |
234 DCHECK(error_details != nullptr); | 234 DCHECK(error_details != nullptr); |
235 const QuicTag* received_tags; | 235 QuicTagVector values; |
236 size_t received_tags_length; | 236 QuicErrorCode error = peer_hello.GetTaglist(tag_, &values); |
237 QuicErrorCode error = | |
238 peer_hello.GetTaglist(tag_, &received_tags, &received_tags_length); | |
239 switch (error) { | 237 switch (error) { |
240 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: | 238 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: |
241 if (presence_ == PRESENCE_OPTIONAL) { | 239 if (presence_ == PRESENCE_OPTIONAL) { |
242 return QUIC_NO_ERROR; | 240 return QUIC_NO_ERROR; |
243 } | 241 } |
244 *error_details = "Missing " + QuicTagToString(tag_); | 242 *error_details = "Missing " + QuicTagToString(tag_); |
245 break; | 243 break; |
246 case QUIC_NO_ERROR: | 244 case QUIC_NO_ERROR: |
247 QUIC_DVLOG(1) << "Received Connection Option tags from receiver."; | 245 QUIC_DVLOG(1) << "Received Connection Option tags from receiver."; |
248 has_receive_values_ = true; | 246 has_receive_values_ = true; |
249 for (size_t i = 0; i < received_tags_length; ++i) { | 247 receive_values_.insert(receive_values_.end(), values.begin(), |
250 receive_values_.push_back(received_tags[i]); | 248 values.end()); |
251 } | |
252 break; | 249 break; |
253 default: | 250 default: |
254 *error_details = "Bad " + QuicTagToString(tag_); | 251 *error_details = "Bad " + QuicTagToString(tag_); |
255 break; | 252 break; |
256 } | 253 } |
257 return error; | 254 return error; |
258 } | 255 } |
259 | 256 |
260 QuicFixedSocketAddress::QuicFixedSocketAddress(QuicTag tag, | 257 QuicFixedSocketAddress::QuicFixedSocketAddress(QuicTag tag, |
261 QuicConfigPresence presence) | 258 QuicConfigPresence presence) |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 error_details); | 680 error_details); |
684 } | 681 } |
685 if (error == QUIC_NO_ERROR) { | 682 if (error == QUIC_NO_ERROR) { |
686 error = support_max_header_list_size_.ProcessPeerHello( | 683 error = support_max_header_list_size_.ProcessPeerHello( |
687 peer_hello, hello_type, error_details); | 684 peer_hello, hello_type, error_details); |
688 } | 685 } |
689 return error; | 686 return error; |
690 } | 687 } |
691 | 688 |
692 } // namespace net | 689 } // namespace net |
OLD | NEW |