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

Unified Diff: remoting/protocol/libjingle_transport_factory.h

Issue 98173006: Fix LibjingleTransportFactory to refresh STUN/Relay. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: remoting/protocol/libjingle_transport_factory.h
diff --git a/remoting/protocol/libjingle_transport_factory.h b/remoting/protocol/libjingle_transport_factory.h
index dfa0ab13c0dde43b16c749262df481c8971bb975..d86b35009d6aeca3616edd42d91b836be9eea19d 100644
--- a/remoting/protocol/libjingle_transport_factory.h
+++ b/remoting/protocol/libjingle_transport_factory.h
@@ -5,6 +5,10 @@
#ifndef REMOTING_PROTOCOL_LIBJINGLE_TRANSPORT_FACTORY_H_
#define REMOTING_PROTOCOL_LIBJINGLE_TRANSPORT_FACTORY_H_
+#include <list>
+
+#include "base/callback_forward.h"
+#include "remoting/jingle_glue/network_settings.h"
#include "remoting/protocol/transport.h"
namespace cricket {
@@ -19,11 +23,13 @@ class URLRequestContextGetter;
namespace talk_base {
class NetworkManager;
class PacketSocketFactory;
+class SocketAddress;
} // namespace talk_base
namespace remoting {
-struct NetworkSettings;
+class SignalStrategy;
+class JingleInfoRequest;
namespace protocol {
@@ -32,21 +38,34 @@ class LibjingleTransportFactory : public TransportFactory {
// Need to use cricket::HttpPortAllocatorBase pointer for the
// |port_allocator|, so that it is possible to configure
// |port_allocator| with STUN/Relay addresses.
- // TODO(sergeyu): Reconsider this design.
LibjingleTransportFactory(
+ SignalStrategy* signal_strategy,
rmsousa 2013/12/13 22:10:40 Nit: Can you document why this pointer is safe?
Sergey Ulanov 2013/12/13 23:54:34 Done.
scoped_ptr<cricket::HttpPortAllocatorBase> port_allocator,
- bool incoming_only);
+ const NetworkSettings& network_settings);
virtual ~LibjingleTransportFactory();
// TransportFactory interface.
- virtual void SetTransportConfig(const TransportConfig& config) OVERRIDE;
+ virtual void PrepareTokens() OVERRIDE;
virtual scoped_ptr<StreamTransport> CreateStreamTransport() OVERRIDE;
virtual scoped_ptr<DatagramTransport> CreateDatagramTransport() OVERRIDE;
private:
+ void EnsureFreshJingleInfo();
+ void OnJingleInfo(const std::string& relay_token,
+ const std::vector<std::string>& relay_hosts,
+ const std::vector<talk_base::SocketAddress>& stun_hosts);
+
+ SignalStrategy* signal_strategy_;
scoped_ptr<cricket::HttpPortAllocatorBase> port_allocator_;
- bool incoming_only_;
+ NetworkSettings network_settings_;
+
+ base::TimeTicks last_jingle_info_update_time_;
+ scoped_ptr<JingleInfoRequest> jingle_info_request_;
+
+ // When there is an active |jingle_info_request_| stores list of callbacks to
+ // be called once the |jingle_info_request_| is finished.
+ std::list<base::Closure> on_jingle_info_callbacks_;
DISALLOW_COPY_AND_ASSIGN(LibjingleTransportFactory);
};

Powered by Google App Engine
This is Rietveld 408576698