| 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_;
|
|
|