Index: remoting/host/remoting_me2me_host.cc |
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc |
index 420465c91656600f1db2d6e386c9980819c159c7..7d49080ee0c0f74cf3cb68a8908f415d7a0e636e 100644 |
--- a/remoting/host/remoting_me2me_host.cc |
+++ b/remoting/host/remoting_me2me_host.cc |
@@ -309,6 +309,10 @@ class HostProcess |
OnCrash) |
IPC_MESSAGE_HANDLER(ChromotingDaemonNetworkMsg_Configuration, |
OnConfigUpdated) |
+ IPC_MESSAGE_FORWARD( |
+ ChromotingDaemonNetworkMsg_DesktopAttached, |
+ desktop_session_connector_, |
+ DesktopSessionConnector::OnDesktopSessionAgentAttached) |
IPC_MESSAGE_FORWARD(ChromotingDaemonNetworkMsg_TerminalDisconnected, |
desktop_session_connector_, |
DesktopSessionConnector::OnTerminalDisconnected) |
@@ -320,6 +324,16 @@ class HostProcess |
#endif // !defined(REMOTING_MULTI_PROCESS) |
} |
+ // Shutdown the host if the daemon disconnected the channel. |
+ virtual void OnChannelError() OVERRIDE { |
+ DCHECK(context_->ui_task_runner()->BelongsToCurrentThread()); |
+ |
+ context_->network_task_runner()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&HostProcess::Shutdown, base::Unretained(this), |
+ kSuccessExitCode)); |
+ } |
+ |
void StartHostProcess() { |
DCHECK(context_->ui_task_runner()->BelongsToCurrentThread()); |