Index: webrtc/p2p/base/p2ptransportchannel.h |
diff --git a/webrtc/p2p/base/p2ptransportchannel.h b/webrtc/p2p/base/p2ptransportchannel.h |
index 2327b2d4771b776e3086fc484e12841257e6160f..e538dc2c9739f466ac603daeceb1e353a46a9df6 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel.h |
+++ b/webrtc/p2p/base/p2ptransportchannel.h |
@@ -26,14 +26,14 @@ |
#include <string> |
#include <vector> |
-#include "webrtc/base/asyncpacketsocket.h" |
#include "webrtc/base/constructormagic.h" |
-#include "webrtc/base/sigslot.h" |
#include "webrtc/p2p/base/candidate.h" |
#include "webrtc/p2p/base/candidatepairinterface.h" |
-#include "webrtc/p2p/base/icetransportinternal.h" |
#include "webrtc/p2p/base/portallocator.h" |
#include "webrtc/p2p/base/portinterface.h" |
+#include "webrtc/p2p/base/transportchannelimpl.h" |
+#include "webrtc/base/asyncpacketsocket.h" |
+#include "webrtc/base/sigslot.h" |
namespace cricket { |
@@ -60,7 +60,7 @@ |
// P2PTransportChannel manages the candidates and connection process to keep |
// two P2P clients connected to each other. |
-class P2PTransportChannel : public IceTransportInternal, |
+class P2PTransportChannel : public TransportChannelImpl, |
public rtc::MessageHandler { |
public: |
P2PTransportChannel(const std::string& transport_name, |
@@ -69,11 +69,7 @@ |
virtual ~P2PTransportChannel(); |
// From TransportChannelImpl: |
- IceTransportState GetState() const override; |
- const std::string& transport_name() const override { return transport_name_; } |
- int component() const override { return component_; } |
- bool writable() const override { return writable_; } |
- bool receiving() const override { return receiving_; } |
+ TransportChannelState GetState() const override; |
void SetIceRole(IceRole role) override; |
IceRole GetIceRole() const override { return ice_role_; } |
void SetIceTiebreaker(uint64_t tiebreaker) override; |
@@ -122,6 +118,57 @@ |
IceMode remote_ice_mode() const { return remote_ice_mode_; } |
+ // DTLS methods. |
+ bool IsDtlsActive() const override { return false; } |
+ |
+ // Default implementation. |
+ bool GetSslRole(rtc::SSLRole* role) const override { return false; } |
+ |
+ bool SetSslRole(rtc::SSLRole role) override { return false; } |
+ |
+ // Set up the ciphers to use for DTLS-SRTP. |
+ bool SetSrtpCryptoSuites(const std::vector<int>& ciphers) override { |
+ return false; |
+ } |
+ |
+ // Find out which DTLS-SRTP cipher was negotiated. |
+ bool GetSrtpCryptoSuite(int* cipher) override { return false; } |
+ |
+ // Find out which DTLS cipher was negotiated. |
+ bool GetSslCipherSuite(int* cipher) override { return false; } |
+ |
+ // Returns null because the channel is not encrypted by default. |
+ rtc::scoped_refptr<rtc::RTCCertificate> GetLocalCertificate() const override { |
+ return nullptr; |
+ } |
+ |
+ std::unique_ptr<rtc::SSLCertificate> GetRemoteSSLCertificate() |
+ const override { |
+ return nullptr; |
+ } |
+ |
+ // Allows key material to be extracted for external encryption. |
+ bool ExportKeyingMaterial(const std::string& label, |
+ const uint8_t* context, |
+ size_t context_len, |
+ bool use_context, |
+ uint8_t* result, |
+ size_t result_len) override { |
+ return false; |
+ } |
+ |
+ bool SetLocalCertificate( |
+ const rtc::scoped_refptr<rtc::RTCCertificate>& certificate) override { |
+ return false; |
+ } |
+ |
+ // Set DTLS Remote fingerprint. Must be after local identity set. |
+ bool SetRemoteFingerprint(const std::string& digest_alg, |
+ const uint8_t* digest, |
+ size_t digest_len) override { |
+ return false; |
+ } |
+ |
void PruneAllPorts(); |
int receiving_timeout() const { return config_.receiving_timeout; } |
int check_receiving_interval() const { return check_receiving_interval_; } |
@@ -144,15 +191,6 @@ |
// Public for unit tests. |
const std::vector<RemoteCandidate>& remote_candidates() const { |
return remote_candidates_; |
- } |
- |
- std::string ToString() const { |
- const char RECEIVING_ABBREV[2] = {'_', 'R'}; |
- const char WRITABLE_ABBREV[2] = {'_', 'W'}; |
- std::stringstream ss; |
- ss << "Channel[" << transport_name_ << "|" << component_ << "|" |
- << RECEIVING_ABBREV[receiving_] << WRITABLE_ABBREV[writable_] << "]"; |
- return ss.str(); |
} |
private: |
@@ -201,7 +239,7 @@ |
void UpdateState(); |
void HandleAllTimedOut(); |
void MaybeStopPortAllocatorSessions(); |
- IceTransportState ComputeState() const; |
+ TransportChannelState ComputeState() const; |
Connection* GetBestConnectionOnNetwork(rtc::Network* network) const; |
bool CreateConnections(const Candidate& remote_candidate, |
@@ -309,13 +347,6 @@ |
: static_cast<uint32_t>(remote_ice_parameters_.size() - 1); |
} |
- // Sets the writable state, signaling if necessary. |
- void set_writable(bool writable); |
- // Sets the receiving state, signaling if necessary. |
- void set_receiving(bool receiving); |
- |
- std::string transport_name_; |
- int component_; |
PortAllocator* allocator_; |
rtc::Thread* network_thread_; |
bool incoming_only_; |
@@ -356,15 +387,13 @@ |
int check_receiving_interval_; |
int64_t last_ping_sent_ms_ = 0; |
int weak_ping_interval_ = WEAK_PING_INTERVAL; |
- IceTransportState state_ = IceTransportState::STATE_INIT; |
+ TransportChannelState state_ = TransportChannelState::STATE_INIT; |
IceConfig config_; |
int last_sent_packet_id_ = -1; // -1 indicates no packet was sent before. |
bool started_pinging_ = false; |
// The value put in the "nomination" attribute for the next nominated |
// connection. A zero-value indicates the connection will not be nominated. |
uint32_t nomination_ = 0; |
- bool receiving_ = false; |
- bool writable_ = false; |
webrtc::MetricsObserverInterface* metrics_observer_ = nullptr; |