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

Side by Side Diff: webrtc/p2p/base/port.h

Issue 1371623003: Delete a connection only if it has timed out on writing and not receiving for 10 seconds. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: A minor change in GetStats Created 5 years, 2 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
OLDNEW
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
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 // If a connection does not receive anything for this long and it has timed out
54 // dead. 54 // on writing, it will be deleted.
55 const uint32 DEAD_CONNECTION_RECEIVE_TIMEOUT = 30 * 1000; // 30 seconds. 55 const uint32 DEAD_CONNECTION_RECEIVE_TIMEOUT = 10 * 1000; // 10 seconds.
pthatcher1 2015/09/28 23:07:28 I think there are actually two different things he
honghaiz3 2015/09/29 18:47:50 Done.
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 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 void OnConnectionRequestTimeout(ConnectionRequest* req); 566 void OnConnectionRequestTimeout(ConnectionRequest* req);
567 void OnConnectionRequestSent(ConnectionRequest* req); 567 void OnConnectionRequestSent(ConnectionRequest* req);
568 568
569 // Changes the state and signals if necessary. 569 // Changes the state and signals if necessary.
570 void set_write_state(WriteState value); 570 void set_write_state(WriteState value);
571 void set_receiving(bool value); 571 void set_receiving(bool value);
572 void set_state(State state); 572 void set_state(State state);
573 void set_connected(bool value); 573 void set_connected(bool value);
574 574
575 // Checks if this connection is useless, and hence, should be destroyed. 575 // Checks if this connection is useless, and hence, should be destroyed.
576 void CheckTimeout(); 576 void CheckTimeout(uint32 now);
577 577
578 void OnMessage(rtc::Message *pmsg); 578 void OnMessage(rtc::Message *pmsg);
579 579
580 Port* port_; 580 Port* port_;
581 size_t local_candidate_index_; 581 size_t local_candidate_index_;
582 Candidate remote_candidate_; 582 Candidate remote_candidate_;
583 WriteState write_state_; 583 WriteState write_state_;
584 bool receiving_; 584 bool receiving_;
585 bool connected_; 585 bool connected_;
586 bool pruned_; 586 bool pruned_;
(...skipping 21 matching lines...) Expand all
608 uint32 sent_packets_total_; 608 uint32 sent_packets_total_;
609 609
610 private: 610 private:
611 void MaybeAddPrflxCandidate(ConnectionRequest* request, 611 void MaybeAddPrflxCandidate(ConnectionRequest* request,
612 StunMessage* response); 612 StunMessage* response);
613 613
614 bool reported_; 614 bool reported_;
615 State state_; 615 State state_;
616 // Time duration to switch from receiving to not receiving. 616 // Time duration to switch from receiving to not receiving.
617 uint32 receiving_timeout_; 617 uint32 receiving_timeout_;
618 uint32 time_created_ms_;
618 619
619 friend class Port; 620 friend class Port;
620 friend class ConnectionRequest; 621 friend class ConnectionRequest;
621 }; 622 };
622 623
623 // ProxyConnection defers all the interesting work to the port 624 // ProxyConnection defers all the interesting work to the port
624 class ProxyConnection : public Connection { 625 class ProxyConnection : public Connection {
625 public: 626 public:
626 ProxyConnection(Port* port, size_t index, const Candidate& candidate); 627 ProxyConnection(Port* port, size_t index, const Candidate& candidate);
627 628
628 virtual int Send(const void* data, size_t size, 629 virtual int Send(const void* data, size_t size,
629 const rtc::PacketOptions& options); 630 const rtc::PacketOptions& options);
630 virtual int GetError() { return error_; } 631 virtual int GetError() { return error_; }
631 632
632 private: 633 private:
633 int error_; 634 int error_;
634 }; 635 };
635 636
636 } // namespace cricket 637 } // namespace cricket
637 638
638 #endif // WEBRTC_P2P_BASE_PORT_H_ 639 #endif // WEBRTC_P2P_BASE_PORT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698