| // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "remoting/host/ipc_host_event_logger.h" |
| |
| #include "base/logging.h" |
| #include "ipc/ipc_sender.h" |
| #include "net/base/ip_endpoint.h" |
| #include "remoting/host/chromoting_messages.h" |
| #include "remoting/host/host_status_monitor.h" |
| #include "remoting/protocol/transport.h" |
| |
| namespace remoting { |
| |
| IpcHostEventLogger::IpcHostEventLogger(scoped_refptr<HostStatusMonitor> monitor, |
| IPC::Sender* daemon_channel) |
| : daemon_channel_(daemon_channel), monitor_(monitor) { |
| monitor_->AddStatusObserver(this); |
| } |
| |
| IpcHostEventLogger::~IpcHostEventLogger() { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| monitor_->RemoveStatusObserver(this); |
| } |
| |
| void IpcHostEventLogger::OnAccessDenied(const std::string& jid) { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| daemon_channel_->Send(new ChromotingNetworkDaemonMsg_AccessDenied(jid)); |
| } |
| |
| void IpcHostEventLogger::OnClientAuthenticated(const std::string& jid) { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| daemon_channel_->Send( |
| new ChromotingNetworkDaemonMsg_ClientAuthenticated(jid)); |
| } |
| |
| void IpcHostEventLogger::OnClientConnected(const std::string& jid) { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| daemon_channel_->Send(new ChromotingNetworkDaemonMsg_ClientConnected(jid)); |
| } |
| |
| void IpcHostEventLogger::OnClientDisconnected(const std::string& jid) { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| daemon_channel_->Send(new ChromotingNetworkDaemonMsg_ClientDisconnected(jid)); |
| } |
| |
| void IpcHostEventLogger::OnClientRouteChange( |
| const std::string& jid, |
| const std::string& channel_name, |
| const protocol::TransportRoute& route) { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| SerializedTransportRoute serialized_route; |
| serialized_route.type = route.type; |
| serialized_route.remote_ip = |
| route.remote_address.address().CopyBytesToVector(); |
| serialized_route.remote_port = route.remote_address.port(); |
| serialized_route.local_ip = route.local_address.address().CopyBytesToVector(); |
| serialized_route.local_port = route.local_address.port(); |
| daemon_channel_->Send(new ChromotingNetworkDaemonMsg_ClientRouteChange( |
| jid, channel_name, serialized_route)); |
| } |
| |
| void IpcHostEventLogger::OnShutdown() { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| daemon_channel_->Send(new ChromotingNetworkDaemonMsg_HostShutdown()); |
| } |
| |
| void IpcHostEventLogger::OnStart(const std::string& xmpp_login) { |
| DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| |
| daemon_channel_->Send(new ChromotingNetworkDaemonMsg_HostStarted(xmpp_login)); |
| } |
| |
| } // namespace remoting |