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

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

Issue 153993015: Use an alternative fix for OneShotVisitor of CryptoFramer that doesn't (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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/crypto/crypto_framer.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/crypto_framer.h" 8 #include "net/quic/crypto/crypto_framer.h"
9 #include "net/quic/crypto/crypto_handshake_message.h" 9 #include "net/quic/crypto/crypto_handshake_message.h"
10 #include "net/quic/crypto/quic_decrypter.h" 10 #include "net/quic/crypto/quic_decrypter.h"
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 } 641 }
642 642
643 visitor_->OnPacketComplete(); 643 visitor_->OnPacketComplete();
644 return true; 644 return true;
645 } 645 }
646 646
647 bool QuicFramer::ProcessPublicResetPacket( 647 bool QuicFramer::ProcessPublicResetPacket(
648 const QuicPacketPublicHeader& public_header) { 648 const QuicPacketPublicHeader& public_header) {
649 QuicPublicResetPacket packet(public_header); 649 QuicPublicResetPacket packet(public_header);
650 650
651 if (reader_->BytesRemaining() <= 651 if (public_header.sequence_number_length == PACKET_6BYTE_SEQUENCE_NUMBER) {
652 kPublicResetNonceSize + PACKET_6BYTE_SEQUENCE_NUMBER) { 652 // An old-style public reset packet has the
653 // An old-style public reset packet. 653 // PACKET_PUBLIC_FLAGS_6BYTE_SEQUENCE bits set in the public flags.
654 // TODO(wtc): remove this when we drop support for QUIC_VERSION_13. 654 // TODO(wtc): remove this when we drop support for QUIC_VERSION_13.
655 if (!reader_->ReadUInt64(&packet.nonce_proof)) { 655 if (!reader_->ReadUInt64(&packet.nonce_proof)) {
656 set_detailed_error("Unable to read nonce proof."); 656 set_detailed_error("Unable to read nonce proof.");
657 return RaiseError(QUIC_INVALID_PUBLIC_RST_PACKET); 657 return RaiseError(QUIC_INVALID_PUBLIC_RST_PACKET);
658 } 658 }
659 659
660 if (!reader_->ReadUInt48(&packet.rejected_sequence_number)) { 660 if (!reader_->ReadUInt48(&packet.rejected_sequence_number)) {
661 set_detailed_error("Unable to read rejected sequence number."); 661 set_detailed_error("Unable to read rejected sequence number.");
662 return RaiseError(QUIC_INVALID_PUBLIC_RST_PACKET); 662 return RaiseError(QUIC_INVALID_PUBLIC_RST_PACKET);
663 } 663 }
(...skipping 1593 matching lines...) Expand 10 before | Expand all | Expand 10 after
2257 2257
2258 bool QuicFramer::RaiseError(QuicErrorCode error) { 2258 bool QuicFramer::RaiseError(QuicErrorCode error) {
2259 DVLOG(1) << "Error detail: " << detailed_error_; 2259 DVLOG(1) << "Error detail: " << detailed_error_;
2260 set_error(error); 2260 set_error(error);
2261 visitor_->OnError(this); 2261 visitor_->OnError(this);
2262 reader_.reset(NULL); 2262 reader_.reset(NULL);
2263 return false; 2263 return false;
2264 } 2264 }
2265 2265
2266 } // namespace net 2266 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/crypto/crypto_framer.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698