Index: remoting/host/remoting_me2me_host.cc |
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc |
index 6aa6b1e27eefdfead7a33b6ab89920cf4f6ba5cc..850c13d21b2d82217bbd10e9fbbb5819f2191422 100644 |
--- a/remoting/host/remoting_me2me_host.cc |
+++ b/remoting/host/remoting_me2me_host.cc |
@@ -234,6 +234,7 @@ class HostProcess |
// Handles policy updates, by calling On*PolicyUpdate methods. |
void OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies); |
+ void OnPolicyError(); |
void ApplyHostDomainPolicy(); |
void ApplyUsernamePolicy(); |
bool OnHostDomainPolicyUpdate(base::DictionaryValue* policies); |
@@ -527,7 +528,8 @@ void HostProcess::OnConfigUpdated( |
policy_watcher_.reset( |
policy_hack::PolicyWatcher::Create(context_->file_task_runner())); |
policy_watcher_->StartWatching( |
- base::Bind(&HostProcess::OnPolicyUpdate, base::Unretained(this))); |
+ base::Bind(&HostProcess::OnPolicyUpdate, base::Unretained(this)), |
+ base::Bind(&HostProcess::OnPolicyError, base::Unretained(this))); |
} else { |
// Reapply policies that could be affected by a new config. |
ApplyHostDomainPolicy(); |
@@ -932,6 +934,15 @@ void HostProcess::OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies) { |
} |
} |
+void HostProcess::OnPolicyError() { |
+ context_->network_task_runner()->PostTask( |
+ FROM_HERE, |
+ base::Bind( |
+ &HostProcess::ShutdownHost, |
+ this, |
+ kInvalidHostConfigurationExitCode)); |
+} |
+ |
void HostProcess::ApplyHostDomainPolicy() { |
HOST_LOG << "Policy sets host domain: " << host_domain_; |