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

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

Issue 2505223004: Delete unused QuicNegotiableTag class. No behavior change. (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
« no previous file with comments | « net/quic/core/quic_config.h ('k') | no next file » | 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/core/quic_config.h" 5 #include "net/quic/core/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/core/crypto/crypto_handshake_message.h" 10 #include "net/quic/core/crypto/crypto_handshake_message.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 *error_details = 107 *error_details =
108 "Invalid value received for " + QuicUtils::TagToString(tag_); 108 "Invalid value received for " + QuicUtils::TagToString(tag_);
109 return QUIC_INVALID_NEGOTIATED_VALUE; 109 return QUIC_INVALID_NEGOTIATED_VALUE;
110 } 110 }
111 111
112 set_negotiated(true); 112 set_negotiated(true);
113 negotiated_value_ = min(value, max_value_); 113 negotiated_value_ = min(value, max_value_);
114 return QUIC_NO_ERROR; 114 return QUIC_NO_ERROR;
115 } 115 }
116 116
117 QuicNegotiableTag::QuicNegotiableTag(QuicTag tag, QuicConfigPresence presence)
118 : QuicNegotiableValue(tag, presence),
119 negotiated_tag_(0),
120 default_value_(0) {}
121
122 QuicNegotiableTag::~QuicNegotiableTag() {}
123
124 void QuicNegotiableTag::set(const QuicTagVector& possible,
125 QuicTag default_value) {
126 DCHECK(ContainsQuicTag(possible, default_value));
127 possible_values_ = possible;
128 default_value_ = default_value;
129 }
130
131 void QuicNegotiableTag::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
132 if (negotiated()) {
133 // Because of the way we serialize and parse handshake messages we can
134 // serialize this as value and still parse it as a vector.
135 out->SetValue(tag_, negotiated_tag_);
136 } else {
137 out->SetVector(tag_, possible_values_);
138 }
139 }
140
141 QuicErrorCode QuicNegotiableTag::ReadVector(const CryptoHandshakeMessage& msg,
142 const QuicTag** out,
143 size_t* out_length,
144 string* error_details) const {
145 DCHECK(error_details != nullptr);
146 QuicErrorCode error = msg.GetTaglist(tag_, out, out_length);
147 switch (error) {
148 case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
149 if (presence_ == PRESENCE_REQUIRED) {
150 *error_details = "Missing " + QuicUtils::TagToString(tag_);
151 break;
152 }
153 error = QUIC_NO_ERROR;
154 *out_length = 1;
155 *out = &default_value_;
156
157 case QUIC_NO_ERROR:
158 break;
159 default:
160 *error_details = "Bad " + QuicUtils::TagToString(tag_);
161 break;
162 }
163 return error;
164 }
165
166 QuicErrorCode QuicNegotiableTag::ProcessPeerHello(
167 const CryptoHandshakeMessage& peer_hello,
168 HelloType hello_type,
169 string* error_details) {
170 DCHECK(!negotiated());
171 DCHECK(error_details != nullptr);
172 const QuicTag* received_tags;
173 size_t received_tags_length;
174 QuicErrorCode error = ReadVector(peer_hello, &received_tags,
175 &received_tags_length, error_details);
176 if (error != QUIC_NO_ERROR) {
177 return error;
178 }
179
180 if (hello_type == SERVER) {
181 if (received_tags_length != 1 ||
182 !ContainsQuicTag(possible_values_, *received_tags)) {
183 *error_details = "Invalid " + QuicUtils::TagToString(tag_);
184 return QUIC_INVALID_NEGOTIATED_VALUE;
185 }
186 negotiated_tag_ = *received_tags;
187 } else {
188 QuicTag negotiated_tag;
189 if (!QuicUtils::FindMutualTag(
190 possible_values_, received_tags, received_tags_length,
191 QuicUtils::LOCAL_PRIORITY, &negotiated_tag, nullptr)) {
192 *error_details = "Unsupported " + QuicUtils::TagToString(tag_);
193 return QUIC_CRYPTO_MESSAGE_PARAMETER_NO_OVERLAP;
194 }
195 negotiated_tag_ = negotiated_tag;
196 }
197
198 set_negotiated(true);
199 return QUIC_NO_ERROR;
200 }
201
202 QuicFixedUint32::QuicFixedUint32(QuicTag tag, QuicConfigPresence presence) 117 QuicFixedUint32::QuicFixedUint32(QuicTag tag, QuicConfigPresence presence)
203 : QuicConfigValue(tag, presence), 118 : QuicConfigValue(tag, presence),
204 has_send_value_(false), 119 has_send_value_(false),
205 has_receive_value_(false) {} 120 has_receive_value_(false) {}
206 QuicFixedUint32::~QuicFixedUint32() {} 121 QuicFixedUint32::~QuicFixedUint32() {}
207 122
208 bool QuicFixedUint32::HasSendValue() const { 123 bool QuicFixedUint32::HasSendValue() const {
209 return has_send_value_; 124 return has_send_value_;
210 } 125 }
211 126
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 error_details); 673 error_details);
759 } 674 }
760 if (error == QUIC_NO_ERROR) { 675 if (error == QUIC_NO_ERROR) {
761 error = force_hol_blocking_.ProcessPeerHello(peer_hello, hello_type, 676 error = force_hol_blocking_.ProcessPeerHello(peer_hello, hello_type,
762 error_details); 677 error_details);
763 } 678 }
764 return error; 679 return error;
765 } 680 }
766 681
767 } // namespace net 682 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_config.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698