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/quic/quic_protocol.h" | 5 #include "net/quic/quic_protocol.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "net/quic/quic_flags.h" | 9 #include "net/quic/quic_flags.h" |
10 #include "net/quic/quic_utils.h" | 10 #include "net/quic/quic_utils.h" |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { | 176 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
177 supported_versions.push_back(kSupportedQuicVersions[i]); | 177 supported_versions.push_back(kSupportedQuicVersions[i]); |
178 } | 178 } |
179 return supported_versions; | 179 return supported_versions; |
180 } | 180 } |
181 | 181 |
182 QuicVersionVector FilterSupportedVersions(QuicVersionVector versions) { | 182 QuicVersionVector FilterSupportedVersions(QuicVersionVector versions) { |
183 QuicVersionVector filtered_versions(versions.size()); | 183 QuicVersionVector filtered_versions(versions.size()); |
184 filtered_versions.clear(); // Guaranteed by spec not to change capacity. | 184 filtered_versions.clear(); // Guaranteed by spec not to change capacity. |
185 for (QuicVersion version : versions) { | 185 for (QuicVersion version : versions) { |
186 if (!FLAGS_quic_disable_pre_30 || version >= QUIC_VERSION_30) { | 186 if (version < QUIC_VERSION_30) { |
187 filtered_versions.push_back(version); | 187 if (!FLAGS_quic_disable_pre_30) { |
| 188 filtered_versions.push_back(version); |
| 189 } |
| 190 } else { |
| 191 if (version == QUIC_VERSION_35) { |
| 192 if (FLAGS_quic_enable_version_35) { |
| 193 filtered_versions.push_back(version); |
| 194 } |
| 195 } else { |
| 196 filtered_versions.push_back(version); |
| 197 } |
188 } | 198 } |
189 } | 199 } |
190 return filtered_versions; | 200 return filtered_versions; |
191 } | 201 } |
192 | 202 |
193 QuicTag QuicVersionToQuicTag(const QuicVersion version) { | 203 QuicTag QuicVersionToQuicTag(const QuicVersion version) { |
194 switch (version) { | 204 switch (version) { |
195 case QUIC_VERSION_25: | 205 case QUIC_VERSION_25: |
196 return MakeQuicTag('Q', '0', '2', '5'); | 206 return MakeQuicTag('Q', '0', '2', '5'); |
197 case QUIC_VERSION_26: | 207 case QUIC_VERSION_26: |
198 return MakeQuicTag('Q', '0', '2', '6'); | 208 return MakeQuicTag('Q', '0', '2', '6'); |
199 case QUIC_VERSION_27: | 209 case QUIC_VERSION_27: |
200 return MakeQuicTag('Q', '0', '2', '7'); | 210 return MakeQuicTag('Q', '0', '2', '7'); |
201 case QUIC_VERSION_28: | 211 case QUIC_VERSION_28: |
202 return MakeQuicTag('Q', '0', '2', '8'); | 212 return MakeQuicTag('Q', '0', '2', '8'); |
203 case QUIC_VERSION_29: | 213 case QUIC_VERSION_29: |
204 return MakeQuicTag('Q', '0', '2', '9'); | 214 return MakeQuicTag('Q', '0', '2', '9'); |
205 case QUIC_VERSION_30: | 215 case QUIC_VERSION_30: |
206 return MakeQuicTag('Q', '0', '3', '0'); | 216 return MakeQuicTag('Q', '0', '3', '0'); |
207 case QUIC_VERSION_31: | 217 case QUIC_VERSION_31: |
208 return MakeQuicTag('Q', '0', '3', '1'); | 218 return MakeQuicTag('Q', '0', '3', '1'); |
209 case QUIC_VERSION_32: | 219 case QUIC_VERSION_32: |
210 return MakeQuicTag('Q', '0', '3', '2'); | 220 return MakeQuicTag('Q', '0', '3', '2'); |
211 case QUIC_VERSION_33: | 221 case QUIC_VERSION_33: |
212 return MakeQuicTag('Q', '0', '3', '3'); | 222 return MakeQuicTag('Q', '0', '3', '3'); |
213 case QUIC_VERSION_34: | 223 case QUIC_VERSION_34: |
214 return MakeQuicTag('Q', '0', '3', '4'); | 224 return MakeQuicTag('Q', '0', '3', '4'); |
| 225 case QUIC_VERSION_35: |
| 226 return MakeQuicTag('Q', '0', '3', '5'); |
215 default: | 227 default: |
216 // This shold be an ERROR because we should never attempt to convert an | 228 // This shold be an ERROR because we should never attempt to convert an |
217 // invalid QuicVersion to be written to the wire. | 229 // invalid QuicVersion to be written to the wire. |
218 LOG(ERROR) << "Unsupported QuicVersion: " << version; | 230 LOG(ERROR) << "Unsupported QuicVersion: " << version; |
219 return 0; | 231 return 0; |
220 } | 232 } |
221 } | 233 } |
222 | 234 |
223 QuicVersion QuicTagToQuicVersion(const QuicTag version_tag) { | 235 QuicVersion QuicTagToQuicVersion(const QuicTag version_tag) { |
224 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { | 236 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
(...skipping 16 matching lines...) Expand all Loading... |
241 RETURN_STRING_LITERAL(QUIC_VERSION_25); | 253 RETURN_STRING_LITERAL(QUIC_VERSION_25); |
242 RETURN_STRING_LITERAL(QUIC_VERSION_26); | 254 RETURN_STRING_LITERAL(QUIC_VERSION_26); |
243 RETURN_STRING_LITERAL(QUIC_VERSION_27); | 255 RETURN_STRING_LITERAL(QUIC_VERSION_27); |
244 RETURN_STRING_LITERAL(QUIC_VERSION_28); | 256 RETURN_STRING_LITERAL(QUIC_VERSION_28); |
245 RETURN_STRING_LITERAL(QUIC_VERSION_29); | 257 RETURN_STRING_LITERAL(QUIC_VERSION_29); |
246 RETURN_STRING_LITERAL(QUIC_VERSION_30); | 258 RETURN_STRING_LITERAL(QUIC_VERSION_30); |
247 RETURN_STRING_LITERAL(QUIC_VERSION_31); | 259 RETURN_STRING_LITERAL(QUIC_VERSION_31); |
248 RETURN_STRING_LITERAL(QUIC_VERSION_32); | 260 RETURN_STRING_LITERAL(QUIC_VERSION_32); |
249 RETURN_STRING_LITERAL(QUIC_VERSION_33); | 261 RETURN_STRING_LITERAL(QUIC_VERSION_33); |
250 RETURN_STRING_LITERAL(QUIC_VERSION_34); | 262 RETURN_STRING_LITERAL(QUIC_VERSION_34); |
| 263 RETURN_STRING_LITERAL(QUIC_VERSION_35); |
251 default: | 264 default: |
252 return "QUIC_VERSION_UNSUPPORTED"; | 265 return "QUIC_VERSION_UNSUPPORTED"; |
253 } | 266 } |
254 } | 267 } |
255 | 268 |
256 string QuicVersionVectorToString(const QuicVersionVector& versions) { | 269 string QuicVersionVectorToString(const QuicVersionVector& versions) { |
257 string result = ""; | 270 string result = ""; |
258 for (size_t i = 0; i < versions.size(); ++i) { | 271 for (size_t i = 0; i < versions.size(); ++i) { |
259 if (i != 0) { | 272 if (i != 0) { |
260 result.append(","); | 273 result.append(","); |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
859 is_unackable(false), | 872 is_unackable(false), |
860 has_crypto_handshake(has_crypto_handshake), | 873 has_crypto_handshake(has_crypto_handshake), |
861 num_padding_bytes(num_padding_bytes), | 874 num_padding_bytes(num_padding_bytes), |
862 retransmission(0) {} | 875 retransmission(0) {} |
863 | 876 |
864 TransmissionInfo::TransmissionInfo(const TransmissionInfo& other) = default; | 877 TransmissionInfo::TransmissionInfo(const TransmissionInfo& other) = default; |
865 | 878 |
866 TransmissionInfo::~TransmissionInfo() {} | 879 TransmissionInfo::~TransmissionInfo() {} |
867 | 880 |
868 } // namespace net | 881 } // namespace net |
OLD | NEW |