| Index: mojo/public/cpp/bindings/lib/control_message_handler.cc
|
| diff --git a/mojo/public/cpp/bindings/lib/control_message_handler.cc b/mojo/public/cpp/bindings/lib/control_message_handler.cc
|
| index 1bcd87daf9ef56103b30255ec0a5ce83c2fd51ad..225af31656dd27b666d3984279470120bb3798dd 100644
|
| --- a/mojo/public/cpp/bindings/lib/control_message_handler.cc
|
| +++ b/mojo/public/cpp/bindings/lib/control_message_handler.cc
|
| @@ -9,6 +9,7 @@
|
| #include <utility>
|
|
|
| #include "base/logging.h"
|
| +#include "base/macros.h"
|
| #include "mojo/public/cpp/bindings/lib/message_builder.h"
|
| #include "mojo/public/cpp/bindings/lib/serialization.h"
|
| #include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
|
| @@ -22,33 +23,35 @@ bool ControlMessageHandler::IsControlMessage(const Message* message) {
|
| message->header()->name == kRunOrClosePipeMessageId;
|
| }
|
|
|
| -ControlMessageHandler::ControlMessageHandler(uint32_t interface_version)
|
| - : interface_version_(interface_version) {
|
| +ControlMessageHandler::ControlMessageHandler(const char* interface_name,
|
| + uint32_t interface_version)
|
| + : interface_name_(interface_name), interface_version_(interface_version) {
|
| }
|
|
|
| ControlMessageHandler::~ControlMessageHandler() {
|
| }
|
|
|
| -bool ControlMessageHandler::Accept(Message* message) {
|
| +MessageReceiver::Result ControlMessageHandler::Accept(Message* message) {
|
| if (message->header()->name == kRunOrClosePipeMessageId)
|
| return RunOrClosePipe(message);
|
|
|
| NOTREACHED();
|
| - return false;
|
| + return Result::ForUnknownError();
|
| }
|
|
|
| -bool ControlMessageHandler::AcceptWithResponder(
|
| +MessageReceiver::Result ControlMessageHandler::AcceptWithResponder(
|
| Message* message,
|
| MessageReceiverWithStatus* responder) {
|
| if (message->header()->name == kRunMessageId)
|
| return Run(message, responder);
|
|
|
| NOTREACHED();
|
| - return false;
|
| + return Result::ForUnknownError();
|
| }
|
|
|
| -bool ControlMessageHandler::Run(Message* message,
|
| - MessageReceiverWithStatus* responder) {
|
| +MessageReceiver::Result ControlMessageHandler::Run(
|
| + Message* message,
|
| + MessageReceiverWithStatus* responder) {
|
| RunResponseMessageParamsPtr response_params_ptr(
|
| RunResponseMessageParams::New());
|
| response_params_ptr->reserved0 = 16u;
|
| @@ -64,14 +67,15 @@ bool ControlMessageHandler::Run(Message* message,
|
| Serialize<RunResponseMessageParamsPtr>(response_params_ptr, builder.buffer(),
|
| &response_params, &context_);
|
| response_params->EncodePointers();
|
| - bool ok = responder->Accept(builder.message());
|
| - ALLOW_UNUSED_LOCAL(ok);
|
| +
|
| + ignore_result(responder->Accept(builder.message()));
|
| delete responder;
|
|
|
| - return true;
|
| + return Result::ForSuccess();
|
| }
|
|
|
| -bool ControlMessageHandler::RunOrClosePipe(Message* message) {
|
| +MessageReceiver::Result ControlMessageHandler::RunOrClosePipe(
|
| + Message* message) {
|
| RunOrClosePipeMessageParams_Data* params =
|
| reinterpret_cast<RunOrClosePipeMessageParams_Data*>(
|
| message->mutable_payload());
|
| @@ -80,7 +84,10 @@ bool ControlMessageHandler::RunOrClosePipe(Message* message) {
|
| RunOrClosePipeMessageParamsPtr params_ptr;
|
| Deserialize<RunOrClosePipeMessageParamsPtr>(params, ¶ms_ptr, &context_);
|
|
|
| - return interface_version_ >= params_ptr->require_version->version;
|
| + if (interface_version_ < params_ptr->require_version->version)
|
| + return Result::ForUnexpectedRequest(interface_name_, message);
|
| +
|
| + return Result::ForSuccess();
|
| }
|
|
|
| } // namespace internal
|
|
|