diff options
author | simonmorris@chromium.org <simonmorris@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-23 00:14:50 +0000 |
---|---|---|
committer | simonmorris@chromium.org <simonmorris@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-23 00:14:50 +0000 |
commit | e873168bd74248ad87346f47dfab33a6b185be32 (patch) | |
tree | e00d8256381efce58e63502d532dfc96c32692d2 /remoting/host | |
parent | d367fe6e95aa33a51edf2190509e5a96cbb98f96 (diff) | |
download | chromium_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.cc | 12 |
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, |