diff options
author | noamsml@google.com <noamsml@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-30 16:58:06 +0000 |
---|---|---|
committer | noamsml@google.com <noamsml@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-30 16:58:06 +0000 |
commit | 87f9e8f5af56e79f7d7d1e3c0bfc22a4e63a0d8a (patch) | |
tree | c89fb23be93d979c82886420a7344425e4d1d287 /remoting/jingle_glue | |
parent | 6a9ea0aa09dd37334a039340575c6c9ec64918b4 (diff) | |
download | chromium_src-87f9e8f5af56e79f7d7d1e3c0bfc22a4e63a0d8a.zip chromium_src-87f9e8f5af56e79f7d7d1e3c0bfc22a4e63a0d8a.tar.gz chromium_src-87f9e8f5af56e79f7d7d1e3c0bfc22a4e63a0d8a.tar.bz2 |
Revert 267234 "New policies: enable/disable relay; port range"
> New policies: enable/disable relay; port range
>
> Add new Chromoting policies:
>
> "RemoteAccessHostAllowRelayedConnection"
> bool, default true
> It can be set to false to disable the use of relay servers if NAT
> traversal is enabled.
>
> "RemoteAccessHostUdpPortRange"
> string, default ""
> Can be used to specify a range in the form "<min-port>-<max-port>" to
> restrict the range of UDP ports available to the host for connections.
> E.g. "12400-12409"
>
> BUG=355168
>
> Review URL: https://codereview.chromium.org/209323002
TBR=dcaiafa@chromium.org
BUG=368724
Review URL: https://codereview.chromium.org/268483003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267242 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/jingle_glue')
-rw-r--r-- | remoting/jingle_glue/chromium_port_allocator.cc | 12 | ||||
-rw-r--r-- | remoting/jingle_glue/network_settings.cc | 45 | ||||
-rw-r--r-- | remoting/jingle_glue/network_settings.h | 42 | ||||
-rw-r--r-- | remoting/jingle_glue/network_settings_unittest.cc | 41 |
4 files changed, 16 insertions, 124 deletions
diff --git a/remoting/jingle_glue/chromium_port_allocator.cc b/remoting/jingle_glue/chromium_port_allocator.cc index 278cb6c..a179650 100644 --- a/remoting/jingle_glue/chromium_port_allocator.cc +++ b/remoting/jingle_glue/chromium_port_allocator.cc @@ -147,13 +147,11 @@ scoped_ptr<ChromiumPortAllocator> ChromiumPortAllocator::Create( int flags = cricket::PORTALLOCATOR_DISABLE_TCP | cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | cricket::PORTALLOCATOR_ENABLE_IPV6; - - if (!(network_settings.flags & NetworkSettings::NAT_TRAVERSAL_STUN)) - flags |= cricket::PORTALLOCATOR_DISABLE_STUN; - - if (!(network_settings.flags & NetworkSettings::NAT_TRAVERSAL_RELAY)) - flags |= cricket::PORTALLOCATOR_DISABLE_RELAY; - + if (network_settings.nat_traversal_mode != + NetworkSettings::NAT_TRAVERSAL_ENABLED) { + flags |= cricket::PORTALLOCATOR_DISABLE_STUN | + cricket::PORTALLOCATOR_DISABLE_RELAY; + } result->set_flags(flags); result->SetPortRange(network_settings.min_port, network_settings.max_port); diff --git a/remoting/jingle_glue/network_settings.cc b/remoting/jingle_glue/network_settings.cc deleted file mode 100644 index d3e464c..0000000 --- a/remoting/jingle_glue/network_settings.cc +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "remoting/jingle_glue/network_settings.h" - -#include <limits.h> -#include <stdlib.h> - -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_util.h" - -namespace remoting { - -// static - bool NetworkSettings::ParsePortRange(const std::string& port_range, - int* out_min_port, - int* out_max_port) { - size_t separator_index = port_range.find('-'); - if (separator_index == std::string::npos) - return false; - - std::string min_port_string, max_port_string; - base::TrimWhitespaceASCII(port_range.substr(0, separator_index), - base::TRIM_ALL, - &min_port_string); - base::TrimWhitespaceASCII(port_range.substr(separator_index + 1), - base::TRIM_ALL, - &max_port_string); - - unsigned min_port, max_port; - if (!base::StringToUint(min_port_string, &min_port) || - !base::StringToUint(max_port_string, &max_port)) { - return false; - } - - if (min_port == 0 || min_port > max_port || max_port > USHRT_MAX) - return false; - - *out_min_port = static_cast<int>(min_port); - *out_max_port = static_cast<int>(max_port); - return true; -} - -} // namespace remoting diff --git a/remoting/jingle_glue/network_settings.h b/remoting/jingle_glue/network_settings.h index 1ff83eb..a37b0bc 100644 --- a/remoting/jingle_glue/network_settings.h +++ b/remoting/jingle_glue/network_settings.h @@ -5,11 +5,6 @@ #ifndef REMOTING_JINGLE_GLUE_NETWORK_SETTINGS_H_ #define REMOTING_JINGLE_GLUE_NETWORK_SETTINGS_H_ -#include <string> - -#include "base/basictypes.h" -#include "base/logging.h" - namespace remoting { struct NetworkSettings { @@ -20,48 +15,33 @@ struct NetworkSettings { static const int kDefaultMinPort = 12400; static const int kDefaultMaxPort = 12409; - enum Flags { + enum NatTraversalMode { + // Active NAT traversal using STUN and relay servers. + NAT_TRAVERSAL_ENABLED, + // 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 = 0x0, - - // Allow outgoing connections, even when STUN and RELAY are not enabled. - NAT_TRAVERSAL_OUTGOING = 0x1, + NAT_TRAVERSAL_DISABLED, - // Active NAT traversal using STUN. - NAT_TRAVERSAL_STUN = 0x2, - - // Allow the use of relay servers when a direct connection is not available. - NAT_TRAVERSAL_RELAY = 0x4, - - // Active NAT traversal using STUN and relay servers. - NAT_TRAVERSAL_FULL = NAT_TRAVERSAL_STUN | NAT_TRAVERSAL_RELAY | - NAT_TRAVERSAL_OUTGOING + // Don't use STUN or relay servers but make outgoing connections. + NAT_TRAVERSAL_OUTGOING, }; NetworkSettings() - : flags(NAT_TRAVERSAL_DISABLED), + : nat_traversal_mode(NAT_TRAVERSAL_DISABLED), min_port(0), max_port(0) { - DCHECK(!(flags & (NAT_TRAVERSAL_STUN | NAT_TRAVERSAL_RELAY)) || - (flags & NAT_TRAVERSAL_OUTGOING)); } - explicit NetworkSettings(uint32 flags) - : flags(flags), + explicit NetworkSettings(NatTraversalMode nat_traversal_mode) + : nat_traversal_mode(nat_traversal_mode), min_port(0), max_port(0) { } - // Parse string in the form "<min_port>-<max_port>". E.g. "12400-12409". - // Returns true if string was parsed successfuly. - static bool ParsePortRange(const std::string& port_range, - int* out_min_port, - int* out_max_port); - - uint32 flags; + 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. diff --git a/remoting/jingle_glue/network_settings_unittest.cc b/remoting/jingle_glue/network_settings_unittest.cc deleted file mode 100644 index 4a00636..0000000 --- a/remoting/jingle_glue/network_settings_unittest.cc +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "remoting/jingle_glue/network_settings.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace remoting { - -TEST(ParsePortRange, Basic) { - int min, max; - - // Valid range - EXPECT_TRUE(NetworkSettings::ParsePortRange("1-65535", &min, &max)); - EXPECT_EQ(1, min); - EXPECT_EQ(65535, max); - - EXPECT_TRUE(NetworkSettings::ParsePortRange(" 1 - 65535 ", &min, &max)); - EXPECT_EQ(1, min); - EXPECT_EQ(65535, max); - - EXPECT_TRUE(NetworkSettings::ParsePortRange("12400-12400", &min, &max)); - EXPECT_EQ(12400, min); - EXPECT_EQ(12400, max); - - // Invalid - EXPECT_FALSE(NetworkSettings::ParsePortRange("", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("-65535", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("1-", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("-", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("-1-65535", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("1--65535", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("1-65535-", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("0-65535", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("1-65536", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("1-4294967295", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("10-1", &min, &max)); - EXPECT_FALSE(NetworkSettings::ParsePortRange("1foo-2bar", &min, &max)); -} - -} // namespace remoting |