| 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 |