summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/rpc_handler_impl.cc
diff options
context:
space:
mode:
authorJackLivio <jack@livio.io>2019-04-03 15:51:56 -0400
committerJackLivio <jack@livio.io>2019-04-03 15:51:56 -0400
commitf84bb53084e44862af2ab8db9a55dd9f3eef48d8 (patch)
tree66f11f3686112ef15febd5066f1369416b716d4b /src/components/application_manager/src/rpc_handler_impl.cc
parenta9bfe3f45e64b3af3d2373e9725d98e31b5199cb (diff)
downloadsdl_core-f84bb53084e44862af2ab8db9a55dd9f3eef48d8.tar.gz
Check if correlation id < 1 for requests
Diffstat (limited to 'src/components/application_manager/src/rpc_handler_impl.cc')
-rw-r--r--src/components/application_manager/src/rpc_handler_impl.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/components/application_manager/src/rpc_handler_impl.cc b/src/components/application_manager/src/rpc_handler_impl.cc
index 6205e028d0..8719fa4da0 100644
--- a/src/components/application_manager/src/rpc_handler_impl.cc
+++ b/src/components/application_manager/src/rpc_handler_impl.cc
@@ -74,6 +74,23 @@ void RPCHandlerImpl::ProcessMessageFromMobile(
return;
}
+ if (message->type() == application_manager::MessageType::kRequest &&
+ message->correlation_id() < 0) {
+ LOG4CXX_ERROR(logger_, "Request correlation id < 0. Returning INVALID_ID");
+ std::shared_ptr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(message->connection_key(),
+ message->function_id(),
+ message->correlation_id(),
+ mobile_apis::Result::INVALID_ID));
+ (*response)[strings::params][strings::correlation_id] =
+ message->correlation_id();
+ (*response)[strings::msg_params][strings::info] =
+ "Invalid Correlation ID for RPC Request";
+ app_manager_.GetRPCService().ManageMobileCommand(
+ response, commands::Command::SOURCE_SDL);
+ return;
+ }
+
bool rpc_passing = app_manager_.GetAppServiceManager()
.GetRPCPassingHandler()
.CanHandleFunctionID(message->function_id());