| Index: remoting/protocol/host_message_dispatcher.cc
|
| diff --git a/remoting/protocol/host_message_dispatcher.cc b/remoting/protocol/host_message_dispatcher.cc
|
| index 1e1eea89d95b43973e4fa6815d8eee5bbe7edbd1..c6058fb1133b15c8da121f1ff047c9e3542dc345 100644
|
| --- a/remoting/protocol/host_message_dispatcher.cc
|
| +++ b/remoting/protocol/host_message_dispatcher.cc
|
| @@ -48,30 +48,46 @@ void HostMessageDispatcher::Initialize(
|
|
|
| void HostMessageDispatcher::OnControlMessageReceived(
|
| ControlMessage* message, Task* done_task) {
|
| - // TODO(sergeyu): Add message validation.
|
| - if (message->has_suggest_resolution()) {
|
| - host_stub_->SuggestResolution(&message->suggest_resolution(), done_task);
|
| - } else if (message->has_begin_session_request()) {
|
| - host_stub_->BeginSessionRequest(
|
| - &message->begin_session_request().credentials(), done_task);
|
| + if (!host_stub_->Enabled()) {
|
| + // When the client has not authenticated with the host, we restrict the
|
| + // control messages that we support.
|
| + if (message->has_begin_session_request()) {
|
| + host_stub_->BeginSessionRequest(
|
| + &message->begin_session_request().credentials(), done_task);
|
| + return;
|
| + } else {
|
| + LOG(WARNING) << "Invalid control message received "
|
| + << "(client not authenticated).";
|
| + }
|
| } else {
|
| - LOG(WARNING) << "Invalid control message received.";
|
| - done_task->Run();
|
| - delete done_task;
|
| + // TODO(sergeyu): Add message validation.
|
| + if (message->has_suggest_resolution()) {
|
| + host_stub_->SuggestResolution(&message->suggest_resolution(), done_task);
|
| + return;
|
| + } else if (message->has_begin_session_request()) {
|
| + LOG(WARNING) << "BeginSessionRequest sent after client already "
|
| + << "authorized.";
|
| + } else {
|
| + LOG(WARNING) << "Invalid control message received.";
|
| + }
|
| }
|
| + done_task->Run();
|
| + delete done_task;
|
| }
|
|
|
| void HostMessageDispatcher::OnEventMessageReceived(
|
| EventMessage* message, Task* done_task) {
|
| - // TODO(sergeyu): Add message validation.
|
| - if (message->has_key_event()) {
|
| - input_stub_->InjectKeyEvent(&message->key_event(), done_task);
|
| - } else if (message->has_mouse_event()) {
|
| - input_stub_->InjectMouseEvent(&message->mouse_event(), done_task);
|
| - } else {
|
| - LOG(WARNING) << "Invalid event message received.";
|
| - done_task->Run();
|
| - delete done_task;
|
| + if (input_stub_->Enabled()) {
|
| + // TODO(sergeyu): Add message validation.
|
| + if (message->has_key_event()) {
|
| + input_stub_->InjectKeyEvent(&message->key_event(), done_task);
|
| + } else if (message->has_mouse_event()) {
|
| + input_stub_->InjectMouseEvent(&message->mouse_event(), done_task);
|
| + } else {
|
| + LOG(WARNING) << "Invalid event message received.";
|
| + done_task->Run();
|
| + delete done_task;
|
| + }
|
| }
|
| }
|
|
|
|
|