Index: remoting/host/chromoting_host.h |
diff --git a/remoting/host/chromoting_host.h b/remoting/host/chromoting_host.h |
index 28a613d850226323d4e500ebd0b2ebd4943cc46e..a9749aca990ad439e81a088b5b7f51143a2c48a3 100644 |
--- a/remoting/host/chromoting_host.h |
+++ b/remoting/host/chromoting_host.h |
@@ -39,6 +39,49 @@ class DesktopEnvironment; |
class Encoder; |
class ScreenRecorder; |
+struct NetworkSettings { |
+ enum NatTraversalMode { |
+ // Don't use STUN or relay servers. Accept incoming P2P connection |
+ // attempts, but don't initiate any. This ensures that the peer is |
+ // on the same network. Note that connection will always fail if |
+ // both ends use this mode. |
+ NAT_TRAVERSAL_DISABLED, |
+ |
+ // Don't use STUN or relay servers but make outgoing connections. |
+ NAT_TRAVERSAL_OUTGOING, |
+ |
+ // Active NAT traversal using STUN and relay servers. |
+ NAT_TRAVERSAL_ENABLED, |
+ }; |
+ |
+ NetworkSettings() |
+ : nat_traversal_mode(NAT_TRAVERSAL_DISABLED), |
+ min_port(0), |
+ max_port(0) { |
+ } |
+ |
+ explicit NetworkSettings(bool allow_nat_traversal) |
+ : nat_traversal_mode(allow_nat_traversal ? |
+ NAT_TRAVERSAL_ENABLED : |
+ NAT_TRAVERSAL_DISABLED), |
+ min_port(0), |
+ max_port(0) { |
+ } |
+ |
+ explicit NetworkSettings(NatTraversalMode nat_traversal_mode) |
+ : nat_traversal_mode(nat_traversal_mode), |
+ min_port(0), |
+ max_port(0) { |
+ } |
+ |
+ NatTraversalMode nat_traversal_mode; |
+ |
+ // |min_port| and |max_port| specify range (inclusive) of ports used by |
+ // P2P sessions. Any port can be used when both values are set to 0. |
+ int min_port; |
+ int max_port; |
+}; |
+ |
// A class to implement the functionality of a host process. |
// |
// Here's the work flow of this class: |
@@ -71,7 +114,7 @@ class ChromotingHost : public base::RefCountedThreadSafe<ChromotingHost>, |
ChromotingHost(ChromotingHostContext* context, |
SignalStrategy* signal_strategy, |
DesktopEnvironment* environment, |
- const protocol::NetworkSettings& network_settings); |
+ const NetworkSettings& network_settings); |
// Asynchronously start the host process. |
// |
@@ -176,7 +219,7 @@ class ChromotingHost : public base::RefCountedThreadSafe<ChromotingHost>, |
// Parameters specified when the host was created. |
ChromotingHostContext* context_; |
DesktopEnvironment* desktop_environment_; |
- protocol::NetworkSettings network_settings_; |
+ NetworkSettings network_settings_; |
// Connection objects. |
SignalStrategy* signal_strategy_; |