diff options
author | Yaroslav Mamykin (GitHub) <ymamykin@luxoft.com> | 2019-10-16 15:18:01 +0300 |
---|---|---|
committer | Yarik <ymamykin@gmail.com> | 2019-11-15 15:19:05 +0200 |
commit | c1b8f638781b4bb9c5306452cec2d195b05a86d3 (patch) | |
tree | eb0efe7971a40da0a55f2f11880341845ce8c7d4 | |
parent | f080cc1afc22ea9218f91bc6c00898822e30cd20 (diff) | |
download | sdl_core-c1b8f638781b4bb9c5306452cec2d195b05a86d3.tar.gz |
fixup! Fix versioning appliance for vehicle data
-rw-r--r-- | src/components/application_manager/include/application_manager/rpc_service_impl.h | 11 | ||||
-rw-r--r-- | src/components/application_manager/src/rpc_service_impl.cc | 56 |
2 files changed, 43 insertions, 24 deletions
diff --git a/src/components/application_manager/include/application_manager/rpc_service_impl.h b/src/components/application_manager/include/application_manager/rpc_service_impl.h index 3e3d83a519..6f3c1da6ba 100644 --- a/src/components/application_manager/include/application_manager/rpc_service_impl.h +++ b/src/components/application_manager/include/application_manager/rpc_service_impl.h @@ -157,6 +157,17 @@ class RPCServiceImpl : public RPCService, Message& output, const bool allow_unknown_parameters = false); + /* + * @brief Handles invalid VehicleData RPC responses from HMI + * @param mobile_apis::FunctionID - id of function + * @param MessageSharedPtr - message with payload + * @return true, if validation of invalid response was done; + * false, if nothing was done. + */ + bool HandleInvalidVehicleDataRPC( + const mobile_apis::FunctionID::eType& api_function_id, + const application_manager::commands::MessageSharedPtr message); + EncryptionFlagCheckResult IsEncryptionRequired( const smart_objects::SmartObject& message, ApplicationSharedPtr app, diff --git a/src/components/application_manager/src/rpc_service_impl.cc b/src/components/application_manager/src/rpc_service_impl.cc index 6baa9df91e..1bdc8b6a82 100644 --- a/src/components/application_manager/src/rpc_service_impl.cc +++ b/src/components/application_manager/src/rpc_service_impl.cc @@ -463,6 +463,36 @@ void RPCServiceImpl::Handle(const impl::MessageToMobile message) { } } +bool RPCServiceImpl::HandleInvalidVehicleDataRPC( + const mobile_apis::FunctionID::eType& api_function_id, + const application_manager::commands::MessageSharedPtr message) { + switch (api_function_id) { + case mobile_apis::FunctionID::GetVehicleDataID: { + if (mobile_apis::Result::SUCCESS == + (*message)[strings::msg_params][strings::result_code].asUInt()) { + smart_objects::SmartObjectSPtr response = + MessageHelper::CreateNegativeResponse( + (*message)[strings::params][strings::connection_key].asUInt(), + api_function_id, + (*message)[strings::params][strings::correlation_id].asUInt(), + static_cast<int32_t>(mobile_apis::Result::GENERIC_ERROR)); + + SendMessageToMobile(response); + return true; + } + } break; + + case mobile_apis::FunctionID::OnVehicleDataID: { + return true; + } break; + + default: + break; + } + + return false; +} + void RPCServiceImpl::SendMessageToMobile( const application_manager::commands::MessageSharedPtr message, bool final_message) { @@ -548,30 +578,8 @@ void RPCServiceImpl::SendMessageToMobile( << "\nError report: " << rpc::PrettyFormat(report)); if (validation_result != smart_objects::errors::eType::OK) { - switch (api_function_id) { - case mobile_apis::FunctionID::GetVehicleDataID: { - if (mobile_apis::Result::SUCCESS == - (*message)[strings::msg_params][strings::result_code].asUInt()) { - smart_objects::SmartObjectSPtr response = - MessageHelper::CreateNegativeResponse( - (*message)[strings::params][strings::connection_key] - .asUInt(), - api_function_id, - (*message)[strings::params][strings::correlation_id] - .asUInt(), - static_cast<int32_t>(mobile_apis::Result::GENERIC_ERROR)); - - SendMessageToMobile(response); - return; - } - } break; - - case mobile_apis::FunctionID::OnVehicleDataID: { - return; - } break; - - default: - break; + if (HandleInvalidVehicleDataRPC(api_function_id, message)) { + return; } } } else { |