OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
43 extern const char UDP_PROTOCOL_NAME[]; | 43 extern const char UDP_PROTOCOL_NAME[]; |
44 extern const char TCP_PROTOCOL_NAME[]; | 44 extern const char TCP_PROTOCOL_NAME[]; |
45 extern const char SSLTCP_PROTOCOL_NAME[]; | 45 extern const char SSLTCP_PROTOCOL_NAME[]; |
46 | 46 |
47 // RFC 6544, TCP candidate encoding rules. | 47 // RFC 6544, TCP candidate encoding rules. |
48 extern const int DISCARD_PORT; | 48 extern const int DISCARD_PORT; |
49 extern const char TCPTYPE_ACTIVE_STR[]; | 49 extern const char TCPTYPE_ACTIVE_STR[]; |
50 extern const char TCPTYPE_PASSIVE_STR[]; | 50 extern const char TCPTYPE_PASSIVE_STR[]; |
51 extern const char TCPTYPE_SIMOPEN_STR[]; | 51 extern const char TCPTYPE_SIMOPEN_STR[]; |
52 | 52 |
53 // If a connection does not receive anything for this long, it is considered | 53 // The minimum time we will wait before destroying a connection after creating |
54 // dead. | 54 // it. |
55 const uint32 DEAD_CONNECTION_RECEIVE_TIMEOUT = 30 * 1000; // 30 seconds. | 55 const uint32 MIN_CONNECTION_LIFETIME = 10 * 1000; // 10 seconds. |
56 | 56 |
57 // The timeout duration when a connection does not receive anything. | 57 // The timeout duration when a connection does not receive anything. |
58 const uint32 WEAK_CONNECTION_RECEIVE_TIMEOUT = 2500; // 2.5 seconds | 58 const uint32 WEAK_CONNECTION_RECEIVE_TIMEOUT = 2500; // 2.5 seconds |
59 | 59 |
60 // The length of time we wait before timing out writability on a connection. | 60 // The length of time we wait before timing out writability on a connection. |
61 const uint32 CONNECTION_WRITE_TIMEOUT = 15 * 1000; // 15 seconds | 61 const uint32 CONNECTION_WRITE_TIMEOUT = 15 * 1000; // 15 seconds |
62 | 62 |
63 // The length of time we wait before we become unwritable. | 63 // The length of time we wait before we become unwritable. |
64 const uint32 CONNECTION_WRITE_CONNECT_TIMEOUT = 5 * 1000; // 5 seconds | 64 const uint32 CONNECTION_WRITE_CONNECT_TIMEOUT = 5 * 1000; // 5 seconds |
65 | 65 |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
428 STATE_WRITE_TIMEOUT = 3, // we have had a large number of ping failures | 428 STATE_WRITE_TIMEOUT = 3, // we have had a large number of ping failures |
429 }; | 429 }; |
430 | 430 |
431 WriteState write_state() const { return write_state_; } | 431 WriteState write_state() const { return write_state_; } |
432 bool writable() const { return write_state_ == STATE_WRITABLE; } | 432 bool writable() const { return write_state_ == STATE_WRITABLE; } |
433 bool receiving() const { return receiving_; } | 433 bool receiving() const { return receiving_; } |
434 | 434 |
435 // Determines whether the connection has finished connecting. This can only | 435 // Determines whether the connection has finished connecting. This can only |
436 // be false for TCP connections. | 436 // be false for TCP connections. |
437 bool connected() const { return connected_; } | 437 bool connected() const { return connected_; } |
438 | |
439 bool Weak() const { return !(writable() && receiving() && connected()); } | 438 bool Weak() const { return !(writable() && receiving() && connected()); } |
439 bool Active() const { | |
440 // TODO(honghaiz): Move from using |write_state_| to using |pruned_|. | |
441 return write_state_ != STATE_WRITE_TIMEOUT; | |
442 } | |
443 // A connection is dead if it can be safely deleted. | |
444 bool Dead(uint32 now) const; | |
pthatcher1
2015/09/29 19:51:32
Now that I see all of these, I realize they should
honghaiz3
2015/09/29 20:40:42
Done. Also changed Weak to weak in p2ptransportcha
| |
440 | 445 |
441 // Estimate of the round-trip time over this connection. | 446 // Estimate of the round-trip time over this connection. |
442 uint32 rtt() const { return rtt_; } | 447 uint32 rtt() const { return rtt_; } |
443 | 448 |
444 size_t sent_total_bytes(); | 449 size_t sent_total_bytes(); |
445 size_t sent_bytes_second(); | 450 size_t sent_bytes_second(); |
446 // Used to track how many packets are discarded in the application socket due | 451 // Used to track how many packets are discarded in the application socket due |
447 // to errors. | 452 // to errors. |
448 size_t sent_discarded_packets(); | 453 size_t sent_discarded_packets(); |
449 size_t sent_total_packets(); | 454 size_t sent_total_packets(); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
565 StunMessage* response); | 570 StunMessage* response); |
566 void OnConnectionRequestTimeout(ConnectionRequest* req); | 571 void OnConnectionRequestTimeout(ConnectionRequest* req); |
567 void OnConnectionRequestSent(ConnectionRequest* req); | 572 void OnConnectionRequestSent(ConnectionRequest* req); |
568 | 573 |
569 // Changes the state and signals if necessary. | 574 // Changes the state and signals if necessary. |
570 void set_write_state(WriteState value); | 575 void set_write_state(WriteState value); |
571 void set_receiving(bool value); | 576 void set_receiving(bool value); |
572 void set_state(State state); | 577 void set_state(State state); |
573 void set_connected(bool value); | 578 void set_connected(bool value); |
574 | 579 |
575 // Checks if this connection is useless, and hence, should be destroyed. | |
576 void CheckTimeout(); | |
577 | |
578 void OnMessage(rtc::Message *pmsg); | 580 void OnMessage(rtc::Message *pmsg); |
579 | 581 |
580 Port* port_; | 582 Port* port_; |
581 size_t local_candidate_index_; | 583 size_t local_candidate_index_; |
582 Candidate remote_candidate_; | 584 Candidate remote_candidate_; |
583 WriteState write_state_; | 585 WriteState write_state_; |
584 bool receiving_; | 586 bool receiving_; |
585 bool connected_; | 587 bool connected_; |
586 bool pruned_; | 588 bool pruned_; |
587 // By default |use_candidate_attr_| flag will be true, | 589 // By default |use_candidate_attr_| flag will be true, |
(...skipping 20 matching lines...) Expand all Loading... | |
608 uint32 sent_packets_total_; | 610 uint32 sent_packets_total_; |
609 | 611 |
610 private: | 612 private: |
611 void MaybeAddPrflxCandidate(ConnectionRequest* request, | 613 void MaybeAddPrflxCandidate(ConnectionRequest* request, |
612 StunMessage* response); | 614 StunMessage* response); |
613 | 615 |
614 bool reported_; | 616 bool reported_; |
615 State state_; | 617 State state_; |
616 // Time duration to switch from receiving to not receiving. | 618 // Time duration to switch from receiving to not receiving. |
617 uint32 receiving_timeout_; | 619 uint32 receiving_timeout_; |
620 uint32 time_created_ms_; | |
618 | 621 |
619 friend class Port; | 622 friend class Port; |
620 friend class ConnectionRequest; | 623 friend class ConnectionRequest; |
621 }; | 624 }; |
622 | 625 |
623 // ProxyConnection defers all the interesting work to the port | 626 // ProxyConnection defers all the interesting work to the port |
624 class ProxyConnection : public Connection { | 627 class ProxyConnection : public Connection { |
625 public: | 628 public: |
626 ProxyConnection(Port* port, size_t index, const Candidate& candidate); | 629 ProxyConnection(Port* port, size_t index, const Candidate& candidate); |
627 | 630 |
628 virtual int Send(const void* data, size_t size, | 631 virtual int Send(const void* data, size_t size, |
629 const rtc::PacketOptions& options); | 632 const rtc::PacketOptions& options); |
630 virtual int GetError() { return error_; } | 633 virtual int GetError() { return error_; } |
631 | 634 |
632 private: | 635 private: |
633 int error_; | 636 int error_; |
634 }; | 637 }; |
635 | 638 |
636 } // namespace cricket | 639 } // namespace cricket |
637 | 640 |
638 #endif // WEBRTC_P2P_BASE_PORT_H_ | 641 #endif // WEBRTC_P2P_BASE_PORT_H_ |
OLD | NEW |