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 (version < QUIC_VERSION_30) { | 186 if (version == QUIC_VERSION_35) { |
187 if (!FLAGS_quic_disable_pre_30) { | 187 if (FLAGS_quic_enable_version_35) { |
| 188 filtered_versions.push_back(version); |
| 189 } |
| 190 } else if (version == QUIC_VERSION_36) { |
| 191 if (FLAGS_quic_enable_version_35 && |
| 192 FLAGS_quic_enable_version_36) { |
188 filtered_versions.push_back(version); | 193 filtered_versions.push_back(version); |
189 } | 194 } |
190 } else { | 195 } else { |
191 if (version == QUIC_VERSION_35) { | 196 filtered_versions.push_back(version); |
192 if (FLAGS_quic_enable_version_35) { | |
193 filtered_versions.push_back(version); | |
194 } | |
195 } else if (version == QUIC_VERSION_36) { | |
196 if (FLAGS_quic_enable_version_35 && FLAGS_quic_enable_version_36) { | |
197 filtered_versions.push_back(version); | |
198 } | |
199 } else { | |
200 filtered_versions.push_back(version); | |
201 } | |
202 } | 197 } |
203 } | 198 } |
204 return filtered_versions; | 199 return filtered_versions; |
205 } | 200 } |
206 | 201 |
207 QuicTag QuicVersionToQuicTag(const QuicVersion version) { | 202 QuicTag QuicVersionToQuicTag(const QuicVersion version) { |
208 switch (version) { | 203 switch (version) { |
209 case QUIC_VERSION_25: | |
210 return MakeQuicTag('Q', '0', '2', '5'); | |
211 case QUIC_VERSION_26: | |
212 return MakeQuicTag('Q', '0', '2', '6'); | |
213 case QUIC_VERSION_27: | |
214 return MakeQuicTag('Q', '0', '2', '7'); | |
215 case QUIC_VERSION_28: | |
216 return MakeQuicTag('Q', '0', '2', '8'); | |
217 case QUIC_VERSION_29: | |
218 return MakeQuicTag('Q', '0', '2', '9'); | |
219 case QUIC_VERSION_30: | 204 case QUIC_VERSION_30: |
220 return MakeQuicTag('Q', '0', '3', '0'); | 205 return MakeQuicTag('Q', '0', '3', '0'); |
221 case QUIC_VERSION_31: | 206 case QUIC_VERSION_31: |
222 return MakeQuicTag('Q', '0', '3', '1'); | 207 return MakeQuicTag('Q', '0', '3', '1'); |
223 case QUIC_VERSION_32: | 208 case QUIC_VERSION_32: |
224 return MakeQuicTag('Q', '0', '3', '2'); | 209 return MakeQuicTag('Q', '0', '3', '2'); |
225 case QUIC_VERSION_33: | 210 case QUIC_VERSION_33: |
226 return MakeQuicTag('Q', '0', '3', '3'); | 211 return MakeQuicTag('Q', '0', '3', '3'); |
227 case QUIC_VERSION_34: | 212 case QUIC_VERSION_34: |
228 return MakeQuicTag('Q', '0', '3', '4'); | 213 return MakeQuicTag('Q', '0', '3', '4'); |
(...skipping 20 matching lines...) Expand all Loading... |
249 << QuicUtils::TagToString(version_tag); | 234 << QuicUtils::TagToString(version_tag); |
250 return QUIC_VERSION_UNSUPPORTED; | 235 return QUIC_VERSION_UNSUPPORTED; |
251 } | 236 } |
252 | 237 |
253 #define RETURN_STRING_LITERAL(x) \ | 238 #define RETURN_STRING_LITERAL(x) \ |
254 case x: \ | 239 case x: \ |
255 return #x | 240 return #x |
256 | 241 |
257 string QuicVersionToString(const QuicVersion version) { | 242 string QuicVersionToString(const QuicVersion version) { |
258 switch (version) { | 243 switch (version) { |
259 RETURN_STRING_LITERAL(QUIC_VERSION_25); | |
260 RETURN_STRING_LITERAL(QUIC_VERSION_26); | |
261 RETURN_STRING_LITERAL(QUIC_VERSION_27); | |
262 RETURN_STRING_LITERAL(QUIC_VERSION_28); | |
263 RETURN_STRING_LITERAL(QUIC_VERSION_29); | |
264 RETURN_STRING_LITERAL(QUIC_VERSION_30); | 244 RETURN_STRING_LITERAL(QUIC_VERSION_30); |
265 RETURN_STRING_LITERAL(QUIC_VERSION_31); | 245 RETURN_STRING_LITERAL(QUIC_VERSION_31); |
266 RETURN_STRING_LITERAL(QUIC_VERSION_32); | 246 RETURN_STRING_LITERAL(QUIC_VERSION_32); |
267 RETURN_STRING_LITERAL(QUIC_VERSION_33); | 247 RETURN_STRING_LITERAL(QUIC_VERSION_33); |
268 RETURN_STRING_LITERAL(QUIC_VERSION_34); | 248 RETURN_STRING_LITERAL(QUIC_VERSION_34); |
269 RETURN_STRING_LITERAL(QUIC_VERSION_35); | 249 RETURN_STRING_LITERAL(QUIC_VERSION_35); |
270 RETURN_STRING_LITERAL(QUIC_VERSION_36); | 250 RETURN_STRING_LITERAL(QUIC_VERSION_36); |
271 default: | 251 default: |
272 return "QUIC_VERSION_UNSUPPORTED"; | 252 return "QUIC_VERSION_UNSUPPORTED"; |
273 } | 253 } |
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
886 is_unackable(false), | 866 is_unackable(false), |
887 has_crypto_handshake(has_crypto_handshake), | 867 has_crypto_handshake(has_crypto_handshake), |
888 num_padding_bytes(num_padding_bytes), | 868 num_padding_bytes(num_padding_bytes), |
889 retransmission(0) {} | 869 retransmission(0) {} |
890 | 870 |
891 TransmissionInfo::TransmissionInfo(const TransmissionInfo& other) = default; | 871 TransmissionInfo::TransmissionInfo(const TransmissionInfo& other) = default; |
892 | 872 |
893 TransmissionInfo::~TransmissionInfo() {} | 873 TransmissionInfo::~TransmissionInfo() {} |
894 | 874 |
895 } // namespace net | 875 } // namespace net |
OLD | NEW |