| 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 #include "base/stl_util.h" | 6 #include "base/stl_util.h" |
| 7 | 7 |
| 8 using base::StringPiece; | 8 using base::StringPiece; |
| 9 using std::map; | 9 using std::map; |
| 10 using std::numeric_limits; | 10 using std::numeric_limits; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 size_t GetStartOfEncryptedData( | 45 size_t GetStartOfEncryptedData( |
| 46 QuicGuidLength guid_length, | 46 QuicGuidLength guid_length, |
| 47 bool include_version, | 47 bool include_version, |
| 48 QuicSequenceNumberLength sequence_number_length) { | 48 QuicSequenceNumberLength sequence_number_length) { |
| 49 // Don't include the fec size, since encryption starts before private flags. | 49 // Don't include the fec size, since encryption starts before private flags. |
| 50 return GetPacketHeaderSize( | 50 return GetPacketHeaderSize( |
| 51 guid_length, include_version, sequence_number_length, NOT_IN_FEC_GROUP) - | 51 guid_length, include_version, sequence_number_length, NOT_IN_FEC_GROUP) - |
| 52 kPrivateFlagsSize; | 52 kPrivateFlagsSize; |
| 53 } | 53 } |
| 54 | 54 |
| 55 uint32 MakeQuicTag(char a, char b, char c, char d) { | |
| 56 return static_cast<uint32>(a) | | |
| 57 static_cast<uint32>(b) << 8 | | |
| 58 static_cast<uint32>(c) << 16 | | |
| 59 static_cast<uint32>(d) << 24; | |
| 60 } | |
| 61 | |
| 62 QuicPacketPublicHeader::QuicPacketPublicHeader() | 55 QuicPacketPublicHeader::QuicPacketPublicHeader() |
| 63 : guid(0), | 56 : guid(0), |
| 64 guid_length(PACKET_8BYTE_GUID), | 57 guid_length(PACKET_8BYTE_GUID), |
| 65 reset_flag(false), | 58 reset_flag(false), |
| 66 version_flag(false), | 59 version_flag(false), |
| 67 sequence_number_length(PACKET_6BYTE_SEQUENCE_NUMBER) { | 60 sequence_number_length(PACKET_6BYTE_SEQUENCE_NUMBER) { |
| 68 } | 61 } |
| 69 | 62 |
| 70 QuicPacketPublicHeader::QuicPacketPublicHeader( | 63 QuicPacketPublicHeader::QuicPacketPublicHeader( |
| 71 const QuicPacketPublicHeader& other) | 64 const QuicPacketPublicHeader& other) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id, | 105 QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id, |
| 113 bool fin, | 106 bool fin, |
| 114 QuicStreamOffset offset, | 107 QuicStreamOffset offset, |
| 115 StringPiece data) | 108 StringPiece data) |
| 116 : stream_id(stream_id), | 109 : stream_id(stream_id), |
| 117 fin(fin), | 110 fin(fin), |
| 118 offset(offset), | 111 offset(offset), |
| 119 data(data) { | 112 data(data) { |
| 120 } | 113 } |
| 121 | 114 |
| 115 uint32 MakeQuicTag(char a, char b, char c, char d) { |
| 116 return static_cast<uint32>(a) | |
| 117 static_cast<uint32>(b) << 8 | |
| 118 static_cast<uint32>(c) << 16 | |
| 119 static_cast<uint32>(d) << 24; |
| 120 } |
| 121 |
| 122 QuicVersion QuicVersionMax() { return kSupportedQuicVersions[0]; } |
| 123 |
| 124 QuicTag QuicVersionToQuicTag(const QuicVersion version) { |
| 125 switch (version) { |
| 126 case QUIC_VERSION_6: |
| 127 return MakeQuicTag('Q', '0', '0', '6'); |
| 128 // case QUIC_VERSION_7 |
| 129 // return MakeQuicTag('Q', '0', '0', '7'); |
| 130 default: |
| 131 LOG(ERROR) << "Unsupported QUIC version: " << version; |
| 132 return 0; |
| 133 } |
| 134 } |
| 135 |
| 136 QuicVersion QuicTagToQuicVersion(const QuicTag version_tag) { |
| 137 const QuicTag quic_tag_v6 = MakeQuicTag('Q', '0', '0', '6'); |
| 138 // const QuicTag quic_tag_v7 = MakeQuicTag('Q', '0', '0', '7'); |
| 139 |
| 140 if (version_tag == quic_tag_v6) { |
| 141 return QUIC_VERSION_6; |
| 142 // } else if (version_tag == quic_tag_v7) { |
| 143 // return QUIC_VERSION_7; |
| 144 } else { |
| 145 LOG(ERROR) << "Unsupported QUIC version: " << version_tag; |
| 146 return QUIC_VERSION_UNSUPPORTED; |
| 147 } |
| 148 } |
| 149 |
| 150 string QuicVersionToString(const QuicVersion version) { |
| 151 // TODO(rjshade): Possibly start using RETURN_STRING_LITERAL here when we |
| 152 // start supporting a lot of versions. |
| 153 switch (version) { |
| 154 case QUIC_VERSION_6: |
| 155 return "QUIC_VERSION_6"; |
| 156 // case QUIC_VERSION_7: |
| 157 // return "QUIC_VERSION_7"; |
| 158 default: |
| 159 return "QUIC_VERSION_UNSUPPORTED"; |
| 160 } |
| 161 } |
| 162 |
| 163 string QuicVersionArrayToString(const QuicVersion versions[], |
| 164 int num_versions) { |
| 165 string result = ""; |
| 166 for (int i = 0; i < num_versions; ++i) { |
| 167 const QuicVersion& version = versions[i]; |
| 168 result.append(QuicVersionToString(version)); |
| 169 result.append(","); |
| 170 } |
| 171 return result; |
| 172 } |
| 173 |
| 122 ostream& operator<<(ostream& os, const QuicPacketHeader& header) { | 174 ostream& operator<<(ostream& os, const QuicPacketHeader& header) { |
| 123 os << "{ guid: " << header.public_header.guid | 175 os << "{ guid: " << header.public_header.guid |
| 124 << ", guid_length:" << header.public_header.guid_length | 176 << ", guid_length:" << header.public_header.guid_length |
| 125 << ", reset_flag: " << header.public_header.reset_flag | 177 << ", reset_flag: " << header.public_header.reset_flag |
| 126 << ", version_flag: " << header.public_header.version_flag; | 178 << ", version_flag: " << header.public_header.version_flag; |
| 127 if (header.public_header.version_flag) { | 179 if (header.public_header.version_flag) { |
| 128 os << " version: "; | 180 os << " version: "; |
| 129 for (size_t i = 0; i < header.public_header.versions.size(); ++i) { | 181 for (size_t i = 0; i < header.public_header.versions.size(); ++i) { |
| 130 os << header.public_header.versions[0] << " "; | 182 os << header.public_header.versions[0] << " "; |
| 131 } | 183 } |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 return os; | 410 return os; |
| 359 } | 411 } |
| 360 | 412 |
| 361 ostream& operator<<(ostream& os, const QuicConsumedData& s) { | 413 ostream& operator<<(ostream& os, const QuicConsumedData& s) { |
| 362 os << "bytes_consumed: " << s.bytes_consumed | 414 os << "bytes_consumed: " << s.bytes_consumed |
| 363 << " fin_consumed: " << s.fin_consumed; | 415 << " fin_consumed: " << s.fin_consumed; |
| 364 return os; | 416 return os; |
| 365 } | 417 } |
| 366 | 418 |
| 367 } // namespace net | 419 } // namespace net |
| OLD | NEW |