| 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 // The entity that handles framing writes for a Quic client or server. | 5 // The entity that handles framing writes for a Quic client or server. | 
| 6 // Each QuicSession will have a connection associated with it. | 6 // Each QuicSession will have a connection associated with it. | 
| 7 // | 7 // | 
| 8 // On the server side, the Dispatcher handles the raw reads, and hands off | 8 // On the server side, the Dispatcher handles the raw reads, and hands off | 
| 9 // packets via ProcessUdpPacket for framing and processing. | 9 // packets via ProcessUdpPacket for framing and processing. | 
| 10 // | 10 // | 
| 11 // On the client side, the Connection handles the raw reads, as well as the | 11 // On the client side, the Connection handles the raw reads, as well as the | 
| 12 // processing. | 12 // processing. | 
| 13 // | 13 // | 
| 14 // Note: this class is not thread-safe. | 14 // Note: this class is not thread-safe. | 
| 15 | 15 | 
| 16 #ifndef NET_QUIC_QUIC_CONNECTION_H_ | 16 #ifndef NET_QUIC_QUIC_CONNECTION_H_ | 
| 17 #define NET_QUIC_QUIC_CONNECTION_H_ | 17 #define NET_QUIC_QUIC_CONNECTION_H_ | 
| 18 | 18 | 
| 19 #include <stddef.h> | 19 #include <stddef.h> | 
|  | 20 #include <stdint.h> | 
|  | 21 | 
| 20 #include <deque> | 22 #include <deque> | 
| 21 #include <list> | 23 #include <list> | 
| 22 #include <map> | 24 #include <map> | 
| 23 #include <queue> | 25 #include <queue> | 
| 24 #include <string> | 26 #include <string> | 
| 25 #include <vector> | 27 #include <vector> | 
| 26 | 28 | 
| 27 #include "base/basictypes.h" |  | 
| 28 #include "base/logging.h" | 29 #include "base/logging.h" | 
|  | 30 #include "base/macros.h" | 
| 29 #include "base/memory/scoped_ptr.h" | 31 #include "base/memory/scoped_ptr.h" | 
| 30 #include "base/strings/string_piece.h" | 32 #include "base/strings/string_piece.h" | 
| 31 #include "net/base/ip_endpoint.h" | 33 #include "net/base/ip_endpoint.h" | 
| 32 #include "net/quic/crypto/quic_decrypter.h" | 34 #include "net/quic/crypto/quic_decrypter.h" | 
| 33 #include "net/quic/quic_alarm.h" | 35 #include "net/quic/quic_alarm.h" | 
| 34 #include "net/quic/quic_blocked_writer_interface.h" | 36 #include "net/quic/quic_blocked_writer_interface.h" | 
| 35 #include "net/quic/quic_fec_group.h" | 37 #include "net/quic/quic_fec_group.h" | 
| 36 #include "net/quic/quic_framer.h" | 38 #include "net/quic/quic_framer.h" | 
| 37 #include "net/quic/quic_packet_creator.h" | 39 #include "net/quic/quic_packet_creator.h" | 
| 38 #include "net/quic/quic_packet_generator.h" | 40 #include "net/quic/quic_packet_generator.h" | 
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 615   // |target_mtu|. | 617   // |target_mtu|. | 
| 616   void SendMtuDiscoveryPacket(QuicByteCount target_mtu); | 618   void SendMtuDiscoveryPacket(QuicByteCount target_mtu); | 
| 617 | 619 | 
| 618   // Sends an MTU discovery packet of size |mtu_discovery_target_| and updates | 620   // Sends an MTU discovery packet of size |mtu_discovery_target_| and updates | 
| 619   // the MTU discovery alarm. | 621   // the MTU discovery alarm. | 
| 620   void DiscoverMtu(); | 622   void DiscoverMtu(); | 
| 621 | 623 | 
| 622   // Return the name of the cipher of the primary decrypter of the framer. | 624   // Return the name of the cipher of the primary decrypter of the framer. | 
| 623   const char* cipher_name() const { return framer_.decrypter()->cipher_name(); } | 625   const char* cipher_name() const { return framer_.decrypter()->cipher_name(); } | 
| 624   // Return the id of the cipher of the primary decrypter of the framer. | 626   // Return the id of the cipher of the primary decrypter of the framer. | 
| 625   uint32 cipher_id() const { return framer_.decrypter()->cipher_id(); } | 627   uint32_t cipher_id() const { return framer_.decrypter()->cipher_id(); } | 
| 626 | 628 | 
| 627   std::vector<QuicEncryptedPacket*>* termination_packets() { | 629   std::vector<QuicEncryptedPacket*>* termination_packets() { | 
| 628     return termination_packets_.get(); | 630     return termination_packets_.get(); | 
| 629   } | 631   } | 
| 630 | 632 | 
| 631   bool ack_frame_updated() const; | 633   bool ack_frame_updated() const; | 
| 632 | 634 | 
| 633  protected: | 635  protected: | 
| 634   // Packets which have not been written to the wire. | 636   // Packets which have not been written to the wire. | 
| 635   struct QueuedPacket { | 637   struct QueuedPacket { | 
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 800 | 802 | 
| 801   const QuicConnectionId connection_id_; | 803   const QuicConnectionId connection_id_; | 
| 802   // Address on the last successfully processed packet received from the | 804   // Address on the last successfully processed packet received from the | 
| 803   // client. | 805   // client. | 
| 804   IPEndPoint self_address_; | 806   IPEndPoint self_address_; | 
| 805   IPEndPoint peer_address_; | 807   IPEndPoint peer_address_; | 
| 806 | 808 | 
| 807   // Used to store latest peer IP address for IP address migration. | 809   // Used to store latest peer IP address for IP address migration. | 
| 808   IPAddressNumber migrating_peer_ip_; | 810   IPAddressNumber migrating_peer_ip_; | 
| 809   // Used to store latest peer port to possibly migrate to later. | 811   // Used to store latest peer port to possibly migrate to later. | 
| 810   uint16 migrating_peer_port_; | 812   uint16_t migrating_peer_port_; | 
| 811 | 813 | 
| 812   // True if the last packet has gotten far enough in the framer to be | 814   // True if the last packet has gotten far enough in the framer to be | 
| 813   // decrypted. | 815   // decrypted. | 
| 814   bool last_packet_decrypted_; | 816   bool last_packet_decrypted_; | 
| 815   bool last_packet_revived_;  // True if the last packet was revived from FEC. | 817   bool last_packet_revived_;  // True if the last packet was revived from FEC. | 
| 816   QuicByteCount last_size_;   // Size of the last received packet. | 818   QuicByteCount last_size_;   // Size of the last received packet. | 
| 817   EncryptionLevel last_decrypted_packet_level_; | 819   EncryptionLevel last_decrypted_packet_level_; | 
| 818   QuicPacketHeader last_header_; | 820   QuicPacketHeader last_header_; | 
| 819   QuicStopWaitingFrame last_stop_waiting_frame_; | 821   QuicStopWaitingFrame last_stop_waiting_frame_; | 
| 820   bool should_last_packet_instigate_acks_; | 822   bool should_last_packet_instigate_acks_; | 
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 984 | 986 | 
| 985   // Whether a GoAway has been received. | 987   // Whether a GoAway has been received. | 
| 986   bool goaway_received_; | 988   bool goaway_received_; | 
| 987 | 989 | 
| 988   DISALLOW_COPY_AND_ASSIGN(QuicConnection); | 990   DISALLOW_COPY_AND_ASSIGN(QuicConnection); | 
| 989 }; | 991 }; | 
| 990 | 992 | 
| 991 }  // namespace net | 993 }  // namespace net | 
| 992 | 994 | 
| 993 #endif  // NET_QUIC_QUIC_CONNECTION_H_ | 995 #endif  // NET_QUIC_QUIC_CONNECTION_H_ | 
| OLD | NEW | 
|---|