Index: remoting/protocol/client_message_dispatcher.cc |
diff --git a/remoting/protocol/client_message_dispatcher.cc b/remoting/protocol/client_message_dispatcher.cc |
index 95686850f895e60ba3ea62e3fc949840b77da8a5..e7b6dd6d324efc41b9be9367714dfeeb7410af9f 100644 |
--- a/remoting/protocol/client_message_dispatcher.cc |
+++ b/remoting/protocol/client_message_dispatcher.cc |
@@ -11,7 +11,6 @@ |
#include "remoting/protocol/client_stub.h" |
#include "remoting/protocol/input_stub.h" |
#include "remoting/protocol/message_reader.h" |
-#include "remoting/protocol/ref_counted_message.h" |
#include "remoting/protocol/session.h" |
namespace remoting { |
@@ -39,18 +38,18 @@ void ClientMessageDispatcher::Initialize( |
} |
void ClientMessageDispatcher::OnControlMessageReceived( |
- ControlMessage* message) { |
- scoped_refptr<RefCountedMessage<ControlMessage> > ref_msg = |
- new RefCountedMessage<ControlMessage>(message); |
+ ControlMessage* message, Task* done_task) { |
+ // TODO(sergeyu): Add message validation. |
if (message->has_notify_resolution()) { |
client_stub_->NotifyResolution( |
- &message->notify_resolution(), NewDeleteTask(ref_msg)); |
+ &message->notify_resolution(), done_task); |
} else if (message->has_begin_session_response()) { |
client_stub_->BeginSessionResponse( |
- &message->begin_session_response().login_status(), |
- NewDeleteTask(ref_msg)); |
+ &message->begin_session_response().login_status(), done_task); |
} else { |
- NOTREACHED() << "Invalid control message received"; |
+ LOG(WARNING) << "Invalid control message received."; |
+ done_task->Run(); |
+ delete done_task; |
} |
} |