summaryrefslogtreecommitdiffstats
path: root/remoting/host
diff options
context:
space:
mode:
authorsimonmorris@chromium.org <simonmorris@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-23 00:14:50 +0000
committersimonmorris@chromium.org <simonmorris@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-23 00:14:50 +0000
commite873168bd74248ad87346f47dfab33a6b185be32 (patch)
treee00d8256381efce58e63502d532dfc96c32692d2 /remoting/host
parentd367fe6e95aa33a51edf2190509e5a96cbb98f96 (diff)
downloadchromium_src-e873168bd74248ad87346f47dfab33a6b185be32.zip
chromium_src-e873168bd74248ad87346f47dfab33a6b185be32.tar.gz
chromium_src-e873168bd74248ad87346f47dfab33a6b185be32.tar.bz2
[Chromoting] Stop policy updates disconnecting an IT2Me session before it's started.
BUG=153946 Review URL: https://chromiumcodereview.appspot.com/11227006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163452 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host')
-rw-r--r--remoting/host/plugin/host_script_object.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/remoting/host/plugin/host_script_object.cc b/remoting/host/plugin/host_script_object.cc
index 52d9196..c4601f8 100644
--- a/remoting/host/plugin/host_script_object.cc
+++ b/remoting/host/plugin/host_script_object.cc
@@ -125,6 +125,9 @@ class HostNPScriptObject::It2MeImpl
// Updates state of the host. Can be called only on the network thread.
void SetState(State state);
+ // Returns true if the host is connected.
+ bool IsConnected() const;
+
// Called by Connect() to check for policies and start connection process.
void ReadPolicyAndConnect(const std::string& uid,
const std::string& auth_token,
@@ -529,7 +532,7 @@ void HostNPScriptObject::It2MeImpl::UpdateNatPolicy(
// When transitioning from enabled to disabled, force disconnect any
// existing session.
- if (nat_traversal_enabled_ && !nat_traversal_enabled) {
+ if (nat_traversal_enabled_ && !nat_traversal_enabled && IsConnected()) {
Disconnect();
}
@@ -548,7 +551,7 @@ void HostNPScriptObject::It2MeImpl::UpdateHostDomainPolicy(
VLOG(2) << "UpdateHostDomainPolicy: " << host_domain;
// When setting a host domain policy, force disconnect any existing session.
- if (!host_domain.empty() && state_ != kStarting) {
+ if (!host_domain.empty() && IsConnected()) {
Disconnect();
}
@@ -616,6 +619,11 @@ void HostNPScriptObject::It2MeImpl::SetState(State state) {
script_object_, state));
}
+bool HostNPScriptObject::It2MeImpl::IsConnected() const {
+ return state_ == kRequestedAccessCode || state_ == kReceivedAccessCode ||
+ state_ == kConnected;
+}
+
void HostNPScriptObject::It2MeImpl::OnReceivedSupportID(
bool success,
const std::string& support_id,