| Index: remoting/protocol/libjingle_transport_factory.cc
|
| diff --git a/remoting/protocol/libjingle_transport_factory.cc b/remoting/protocol/libjingle_transport_factory.cc
|
| index 6790f9aafb58d98b8f0c14eae437956efa5da865..1c39f8024bbf7868203b8f19ecafcdc5839ad006 100644
|
| --- a/remoting/protocol/libjingle_transport_factory.cc
|
| +++ b/remoting/protocol/libjingle_transport_factory.cc
|
| @@ -16,6 +16,7 @@
|
| #include "third_party/libjingle/source/talk/base/network.h"
|
| #include "third_party/libjingle/source/talk/p2p/base/p2ptransportchannel.h"
|
| #include "third_party/libjingle/source/talk/p2p/client/basicportallocator.h"
|
| +#include "third_party/libjingle/source/talk/p2p/client/httpportallocator.h"
|
|
|
| namespace remoting {
|
| namespace protocol {
|
| @@ -41,7 +42,6 @@ class LibjingleStreamTransport : public StreamTransport,
|
| // StreamTransport interface.
|
| virtual void Initialize(
|
| const std::string& name,
|
| - const TransportConfig& config,
|
| Transport::EventHandler* event_handler,
|
| scoped_ptr<ChannelAuthenticator> authenticator) OVERRIDE;
|
| virtual void Connect(
|
| @@ -70,7 +70,6 @@ class LibjingleStreamTransport : public StreamTransport,
|
| bool incoming_only_;
|
|
|
| std::string name_;
|
| - TransportConfig config_;
|
| EventHandler* event_handler_;
|
| StreamTransport::ConnectedCallback callback_;
|
| scoped_ptr<ChannelAuthenticator> authenticator_;
|
| @@ -105,7 +104,6 @@ LibjingleStreamTransport::~LibjingleStreamTransport() {
|
|
|
| void LibjingleStreamTransport::Initialize(
|
| const std::string& name,
|
| - const TransportConfig& config,
|
| Transport::EventHandler* event_handler,
|
| scoped_ptr<ChannelAuthenticator> authenticator) {
|
| DCHECK(CalledOnValidThread());
|
| @@ -117,7 +115,6 @@ void LibjingleStreamTransport::Initialize(
|
| DCHECK(name_.empty());
|
|
|
| name_ = name;
|
| - config_ = config;
|
| event_handler_ = event_handler;
|
| authenticator_ = authenticator.Pass();
|
| }
|
| @@ -294,10 +291,11 @@ void LibjingleStreamTransport::NotifyConnectFailed() {
|
| LibjingleTransportFactory::LibjingleTransportFactory(
|
| scoped_ptr<talk_base::NetworkManager> network_manager,
|
| scoped_ptr<talk_base::PacketSocketFactory> socket_factory,
|
| - scoped_ptr<cricket::PortAllocator> port_allocator,
|
| + scoped_ptr<cricket::HttpPortAllocatorBase> port_allocator,
|
| bool incoming_only)
|
| : network_manager_(network_manager.Pass()),
|
| socket_factory_(socket_factory.Pass()),
|
| + http_port_allocator_(port_allocator.get()),
|
| port_allocator_(port_allocator.Pass()),
|
| incoming_only_(incoming_only) {
|
| }
|
| @@ -305,6 +303,7 @@ LibjingleTransportFactory::LibjingleTransportFactory(
|
| LibjingleTransportFactory::LibjingleTransportFactory()
|
| : network_manager_(new talk_base::BasicNetworkManager()),
|
| socket_factory_(new talk_base::BasicPacketSocketFactory()),
|
| + http_port_allocator_(NULL),
|
| port_allocator_(new cricket::BasicPortAllocator(
|
| network_manager_.get(), socket_factory_.get())),
|
| incoming_only_(false) {
|
| @@ -321,6 +320,26 @@ LibjingleTransportFactory::~LibjingleTransportFactory() {
|
| FROM_HERE, network_manager_.release());
|
| }
|
|
|
| +void LibjingleTransportFactory::SetTransportConfig(
|
| + const TransportConfig& config) {
|
| + if (http_port_allocator_) {
|
| + std::vector<talk_base::SocketAddress> stun_hosts;
|
| + talk_base::SocketAddress stun_address;
|
| + if (stun_address.FromString(config.stun_server)) {
|
| + stun_hosts.push_back(stun_address);
|
| + http_port_allocator_->SetStunHosts(stun_hosts);
|
| + } else {
|
| + LOG(ERROR) << "Failed to parse stun server address: "
|
| + << config.stun_server;
|
| + }
|
| +
|
| + std::vector<std::string> relay_hosts;
|
| + relay_hosts.push_back(config.relay_server);
|
| + http_port_allocator_->SetRelayHosts(relay_hosts);
|
| + http_port_allocator_->SetRelayToken(config.relay_token);
|
| + }
|
| +}
|
| +
|
| scoped_ptr<StreamTransport> LibjingleTransportFactory::CreateStreamTransport() {
|
| return scoped_ptr<StreamTransport>(
|
| new LibjingleStreamTransport(port_allocator_.get(), incoming_only_));
|
|
|