summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/libjingle/source/talk/p2p/base/turnport.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/libjingle/source/talk/p2p/base/turnport.h')
-rw-r--r--chromium/third_party/libjingle/source/talk/p2p/base/turnport.h51
1 files changed, 45 insertions, 6 deletions
diff --git a/chromium/third_party/libjingle/source/talk/p2p/base/turnport.h b/chromium/third_party/libjingle/source/talk/p2p/base/turnport.h
index e380a8912f7..2f5e8c4ab1b 100644
--- a/chromium/third_party/libjingle/source/talk/p2p/base/turnport.h
+++ b/chromium/third_party/libjingle/source/talk/p2p/base/turnport.h
@@ -52,6 +52,18 @@ class TurnPort : public Port {
static TurnPort* Create(talk_base::Thread* thread,
talk_base::PacketSocketFactory* factory,
talk_base::Network* network,
+ talk_base::AsyncPacketSocket* socket,
+ const std::string& username, // ice username.
+ const std::string& password, // ice password.
+ const ProtocolAddress& server_address,
+ const RelayCredentials& credentials) {
+ return new TurnPort(thread, factory, network, socket,
+ username, password, server_address, credentials);
+ }
+
+ static TurnPort* Create(talk_base::Thread* thread,
+ talk_base::PacketSocketFactory* factory,
+ talk_base::Network* network,
const talk_base::IPAddress& ip,
int min_port, int max_port,
const std::string& username, // ice username.
@@ -74,15 +86,24 @@ class TurnPort : public Port {
const Candidate& c, PortInterface::CandidateOrigin origin);
virtual int SendTo(const void* data, size_t size,
const talk_base::SocketAddress& addr,
- talk_base::DiffServCodePoint dscp,
+ const talk_base::PacketOptions& options,
bool payload);
virtual int SetOption(talk_base::Socket::Option opt, int value);
virtual int GetOption(talk_base::Socket::Option opt, int* value);
virtual int GetError();
- virtual void OnReadPacket(
+
+ virtual bool HandleIncomingPacket(
talk_base::AsyncPacketSocket* socket, const char* data, size_t size,
const talk_base::SocketAddress& remote_addr,
- const talk_base::PacketTime& packet_time);
+ const talk_base::PacketTime& packet_time) {
+ OnReadPacket(socket, data, size, remote_addr, packet_time);
+ return true;
+ }
+ virtual void OnReadPacket(talk_base::AsyncPacketSocket* socket,
+ const char* data, size_t size,
+ const talk_base::SocketAddress& remote_addr,
+ const talk_base::PacketTime& packet_time);
+
virtual void OnReadyToSend(talk_base::AsyncPacketSocket* socket);
void OnSocketConnect(talk_base::AsyncPacketSocket* socket);
@@ -92,6 +113,13 @@ class TurnPort : public Port {
const std::string& hash() const { return hash_; }
const std::string& nonce() const { return nonce_; }
+ // Signal with resolved server address.
+ // Parameters are port, server address and resolved server address.
+ // This signal will be sent only if server address is resolved successfully.
+ sigslot::signal3<TurnPort*,
+ const talk_base::SocketAddress&,
+ const talk_base::SocketAddress&> SignalResolvedServerAddress;
+
// This signal is only for testing purpose.
sigslot::signal3<TurnPort*, const talk_base::SocketAddress&, int>
SignalCreatePermissionResult;
@@ -100,6 +128,15 @@ class TurnPort : public Port {
TurnPort(talk_base::Thread* thread,
talk_base::PacketSocketFactory* factory,
talk_base::Network* network,
+ talk_base::AsyncPacketSocket* socket,
+ const std::string& username,
+ const std::string& password,
+ const ProtocolAddress& server_address,
+ const RelayCredentials& credentials);
+
+ TurnPort(talk_base::Thread* thread,
+ talk_base::PacketSocketFactory* factory,
+ talk_base::Network* network,
const talk_base::IPAddress& ip,
int min_port, int max_port,
const std::string& username,
@@ -131,7 +168,8 @@ class TurnPort : public Port {
// Stun address from allocate success response.
// Currently used only for testing.
void OnStunAddress(const talk_base::SocketAddress& address);
- void OnAllocateSuccess(const talk_base::SocketAddress& address);
+ void OnAllocateSuccess(const talk_base::SocketAddress& address,
+ const talk_base::SocketAddress& stun_address);
void OnAllocateError();
void OnAllocateRequestTimeout();
@@ -145,7 +183,8 @@ class TurnPort : public Port {
bool ScheduleRefresh(int lifetime);
void SendRequest(StunRequest* request, int delay);
- int Send(const void* data, size_t size, talk_base::DiffServCodePoint dscp);
+ int Send(const void* data, size_t size,
+ const talk_base::PacketOptions& options);
void UpdateHash();
bool UpdateNonce(StunMessage* response);
@@ -159,7 +198,7 @@ class TurnPort : public Port {
ProtocolAddress server_address_;
RelayCredentials credentials_;
- talk_base::scoped_ptr<talk_base::AsyncPacketSocket> socket_;
+ talk_base::AsyncPacketSocket* socket_;
SocketOptionsMap socket_options_;
talk_base::AsyncResolverInterface* resolver_;
int error_;