Index: webrtc/p2p/base/portallocator.h |
diff --git a/webrtc/p2p/base/portallocator.h b/webrtc/p2p/base/portallocator.h |
index 4f8ec2fbe69c2d7a88594df48fe9873cbdaf440a..51d8d7270db182eb77aef13dab2e1eee7124d5eb 100644 |
--- a/webrtc/p2p/base/portallocator.h |
+++ b/webrtc/p2p/base/portallocator.h |
@@ -14,6 +14,7 @@ |
#include <string> |
#include <vector> |
+#include "webrtc/p2p/base/port.h" |
#include "webrtc/p2p/base/portinterface.h" |
#include "webrtc/base/helpers.h" |
#include "webrtc/base/proxyinfo.h" |
@@ -71,6 +72,27 @@ enum { |
CF_ALL = 0x7, |
}; |
+// TODO(deadbeef): Rename to TurnCredentials (and username to ufrag). |
+struct RelayCredentials { |
+ RelayCredentials() {} |
+ RelayCredentials(const std::string& username, const std::string& password) |
+ : username(username), password(password) {} |
+ |
+ std::string username; |
+ std::string password; |
+}; |
+ |
+typedef std::vector<ProtocolAddress> PortList; |
+// TODO(deadbeef): Rename to TurnServerConfig. |
+struct RelayServerConfig { |
+ RelayServerConfig(RelayType type) : type(type), priority(0) {} |
+ |
+ RelayType type; |
+ PortList ports; |
+ RelayCredentials credentials; |
+ int priority; |
+}; |
+ |
class PortAllocatorSession : public sigslot::has_slots<> { |
public: |
// Content name passed in mostly for logging and debugging. |
@@ -137,6 +159,11 @@ class PortAllocator : public sigslot::has_slots<> { |
} |
virtual ~PortAllocator() {} |
+ // Set STUN and TURN servers to be used in future sessions. |
+ virtual void SetIceServers( |
+ const ServerAddresses& stun_servers, |
+ const std::vector<RelayServerConfig>& turn_servers) = 0; |
+ |
PortAllocatorSession* CreateSession( |
const std::string& sid, |
const std::string& content_name, |