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

Side by Side Diff: net/quic/quic_framer.cc

Issue 125403006: Various QUIC cleanups to sync with internal code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comments Created 6 years, 11 months 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_end_to_end_unittest.cc ('k') | net/quic/quic_framer_test.cc » ('j') | 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) 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_framer.h" 5 #include "net/quic/quic_framer.h"
6 6
7 #include "base/containers/hash_tables.h" 7 #include "base/containers/hash_tables.h"
8 #include "net/quic/crypto/quic_decrypter.h" 8 #include "net/quic/crypto/quic_decrypter.h"
9 #include "net/quic/crypto/quic_encrypter.h" 9 #include "net/quic/crypto/quic_encrypter.h"
10 #include "net/quic/quic_data_reader.h" 10 #include "net/quic/quic_data_reader.h"
11 #include "net/quic/quic_data_writer.h" 11 #include "net/quic/quic_data_writer.h"
12 12
13 using base::StringPiece; 13 using base::StringPiece;
14 using std::make_pair; 14 using std::make_pair;
15 using std::map; 15 using std::map;
16 using std::max; 16 using std::max;
17 using std::min; 17 using std::min;
18 using std::numeric_limits; 18 using std::numeric_limits;
19 using std::string; 19 using std::string;
20 20
21 bool FLAGS_quic_allow_oversized_packets_for_test = false;
22
21 namespace net { 23 namespace net {
22 24
23 namespace { 25 namespace {
24 26
25 // Mask to select the lowest 48 bits of a sequence number. 27 // Mask to select the lowest 48 bits of a sequence number.
26 const QuicPacketSequenceNumber k6ByteSequenceNumberMask = 28 const QuicPacketSequenceNumber k6ByteSequenceNumberMask =
27 GG_UINT64_C(0x0000FFFFFFFFFFFF); 29 GG_UINT64_C(0x0000FFFFFFFFFFFF);
28 const QuicPacketSequenceNumber k4ByteSequenceNumberMask = 30 const QuicPacketSequenceNumber k4ByteSequenceNumberMask =
29 GG_UINT64_C(0x00000000FFFFFFFF); 31 GG_UINT64_C(0x00000000FFFFFFFF);
30 const QuicPacketSequenceNumber k2ByteSequenceNumberMask = 32 const QuicPacketSequenceNumber k2ByteSequenceNumberMask =
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 // Only truncate the first frame in a packet, so if subsequent ones go 261 // Only truncate the first frame in a packet, so if subsequent ones go
260 // over, stop including more frames. 262 // over, stop including more frames.
261 if (!first_frame) { 263 if (!first_frame) {
262 return 0; 264 return 0;
263 } 265 }
264 if (CanTruncate(quic_version_, frame, free_bytes)) { 266 if (CanTruncate(quic_version_, frame, free_bytes)) {
265 // Truncate the frame so the packet will not exceed kMaxPacketSize. 267 // Truncate the frame so the packet will not exceed kMaxPacketSize.
266 // Note that we may not use every byte of the writer in this case. 268 // Note that we may not use every byte of the writer in this case.
267 DVLOG(1) << "Truncating large frame"; 269 DVLOG(1) << "Truncating large frame";
268 return free_bytes; 270 return free_bytes;
271 } else if (!FLAGS_quic_allow_oversized_packets_for_test) {
272 return 0;
269 } 273 }
270 } 274 }
271 return frame_len; 275 return frame_len;
272 } 276 }
273 277
274 QuicFramer::AckFrameInfo::AckFrameInfo() : max_delta(0) { } 278 QuicFramer::AckFrameInfo::AckFrameInfo() : max_delta(0) { }
275 279
276 QuicFramer::AckFrameInfo::~AckFrameInfo() { } 280 QuicFramer::AckFrameInfo::~AckFrameInfo() { }
277 281
278 QuicPacketEntropyHash QuicFramer::GetPacketEntropyHash( 282 QuicPacketEntropyHash QuicFramer::GetPacketEntropyHash(
(...skipping 1443 matching lines...) Expand 10 before | Expand all | Expand 10 after
1722 break; 1726 break;
1723 case PACKET_4BYTE_SEQUENCE_NUMBER: 1727 case PACKET_4BYTE_SEQUENCE_NUMBER:
1724 return writer->WriteUInt32( 1728 return writer->WriteUInt32(
1725 packet_sequence_number & k4ByteSequenceNumberMask); 1729 packet_sequence_number & k4ByteSequenceNumberMask);
1726 break; 1730 break;
1727 case PACKET_6BYTE_SEQUENCE_NUMBER: 1731 case PACKET_6BYTE_SEQUENCE_NUMBER:
1728 return writer->WriteUInt48( 1732 return writer->WriteUInt48(
1729 packet_sequence_number & k6ByteSequenceNumberMask); 1733 packet_sequence_number & k6ByteSequenceNumberMask);
1730 break; 1734 break;
1731 default: 1735 default:
1732 NOTREACHED() << "sequence_number_length: " << sequence_number_length; 1736 DCHECK(false) << "sequence_number_length: " << sequence_number_length;
1733 return false; 1737 return false;
1734 } 1738 }
1735 } 1739 }
1736 1740
1737 bool QuicFramer::AppendStreamFramePayload( 1741 bool QuicFramer::AppendStreamFramePayload(
1738 const QuicStreamFrame& frame, 1742 const QuicStreamFrame& frame,
1739 bool last_frame_in_packet, 1743 bool last_frame_in_packet,
1740 QuicDataWriter* writer) { 1744 QuicDataWriter* writer) {
1741 if (!writer->WriteBytes(&frame.stream_id, GetStreamIdSize(frame.stream_id))) { 1745 if (!writer->WriteBytes(&frame.stream_id, GetStreamIdSize(frame.stream_id))) {
1742 return false; 1746 return false;
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 2040
2037 bool QuicFramer::RaiseError(QuicErrorCode error) { 2041 bool QuicFramer::RaiseError(QuicErrorCode error) {
2038 DVLOG(1) << "Error detail: " << detailed_error_; 2042 DVLOG(1) << "Error detail: " << detailed_error_;
2039 set_error(error); 2043 set_error(error);
2040 visitor_->OnError(this); 2044 visitor_->OnError(this);
2041 reader_.reset(NULL); 2045 reader_.reset(NULL);
2042 return false; 2046 return false;
2043 } 2047 }
2044 2048
2045 } // namespace net 2049 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_end_to_end_unittest.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698