summaryrefslogtreecommitdiffstats
path: root/remoting/jingle_glue
diff options
context:
space:
mode:
authornoamsml@google.com <noamsml@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-30 16:58:06 +0000
committernoamsml@google.com <noamsml@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-30 16:58:06 +0000
commit87f9e8f5af56e79f7d7d1e3c0bfc22a4e63a0d8a (patch)
treec89fb23be93d979c82886420a7344425e4d1d287 /remoting/jingle_glue
parent6a9ea0aa09dd37334a039340575c6c9ec64918b4 (diff)
downloadchromium_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.cc12
-rw-r--r--remoting/jingle_glue/network_settings.cc45
-rw-r--r--remoting/jingle_glue/network_settings.h42
-rw-r--r--remoting/jingle_glue/network_settings_unittest.cc41
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