| Index: remoting/host/remoting_me2me_host.cc
|
| diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
|
| index 701ce32be5e7347918ff560a4824acf9ee4dacfc..046df9d28c7ec034c8c993ec46cccb75a2a0bbfb 100644
|
| --- a/remoting/host/remoting_me2me_host.cc
|
| +++ b/remoting/host/remoting_me2me_host.cc
|
| @@ -24,6 +24,7 @@
|
| #include "base/win/windows_version.h"
|
| #include "build/build_config.h"
|
| #include "crypto/nss_util.h"
|
| +#include "ipc/ipc_channel.h"
|
| #include "net/base/network_change_notifier.h"
|
| #include "net/socket/ssl_server_socket.h"
|
| #include "remoting/base/breakpad.h"
|
| @@ -68,6 +69,9 @@ namespace {
|
| // This is used for tagging system event logs.
|
| const char kApplicationName[] = "chromoting";
|
|
|
| +// The command line switch specifying the name of the Chromoting IPC channel.
|
| +const char kDaemonIpcSwitchName[] = "chromoting-ipc";
|
| +
|
| // These are used for parsing the config-file locations from the command line,
|
| // and for defining the default locations if the switches are not present.
|
| const char kAuthConfigSwitchName[] = "auth-config";
|
| @@ -92,7 +96,8 @@ const char kOfficialOAuth2ClientSecret[] = "Bgur6DFiOMM1h8x-AQpuTQlK";
|
| namespace remoting {
|
|
|
| class HostProcess
|
| - : public HeartbeatSender::Listener {
|
| + : public HeartbeatSender::Listener,
|
| + public IPC::Listener {
|
| public:
|
| HostProcess()
|
| : message_loop_(MessageLoop::TYPE_UI),
|
| @@ -122,6 +127,18 @@ class HostProcess
|
| }
|
|
|
| bool InitWithCommandLine(const CommandLine* cmd_line) {
|
| + // Connect to the daemon process.
|
| + std::string channel_name =
|
| + cmd_line->GetSwitchValueASCII(kDaemonIpcSwitchName);
|
| +
|
| +#if defined(REMOTING_MULTI_PROCESS)
|
| + if (channel_name.empty())
|
| + return false;
|
| +#endif // defined(REMOTING_MULTI_PROCESS)
|
| +
|
| + if (!channel_name.empty())
|
| + context_->ConnectToDaemon(channel_name, this);
|
| +
|
| FilePath default_config_dir = remoting::GetConfigDir();
|
| if (cmd_line->HasSwitch(kAuthConfigSwitchName)) {
|
| FilePath path = cmd_line->GetSwitchValuePath(kAuthConfigSwitchName);
|
| @@ -212,6 +229,11 @@ class HostProcess
|
| host_->SetAuthenticatorFactory(factory.Pass());
|
| }
|
|
|
| + // IPC::Listener implementation.
|
| + virtual bool OnMessageReceived(const IPC::Message& message) {
|
| + return false;
|
| + }
|
| +
|
| int Run() {
|
| if (!LoadConfig()) {
|
| return kInvalidHostConfigurationExitCode;
|
| @@ -235,6 +257,7 @@ class HostProcess
|
| host_user_interface_.reset();
|
| #endif
|
|
|
| + context_->DisconnectFromDaemon();
|
| base::WaitableEvent done_event(true, false);
|
| policy_watcher_->StopWatching(&done_event);
|
| done_event.Wait();
|
|
|