From ca8afd996ef8a3fd26c7a7ea497accedd92f20bc Mon Sep 17 00:00:00 2001 From: Dmitriy Klimenko Date: Mon, 1 Jun 2015 12:58:49 -0700 Subject: [RTC 602452] [APPLINK] FUN-REQ-134502/B-Diagnostic Message - Request Processing --- .../application_manager/smart_object_keys.h | 1 + .../commands/mobile/diagnostic_message_request.cc | 27 +++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/components/application_manager/include/application_manager/smart_object_keys.h b/src/components/application_manager/include/application_manager/smart_object_keys.h index 6791dd0b5..e2ec9ffd8 100644 --- a/src/components/application_manager/include/application_manager/smart_object_keys.h +++ b/src/components/application_manager/include/application_manager/smart_object_keys.h @@ -276,6 +276,7 @@ const char address_lines[] = "addressLines"; const char phone_number[] = "phoneNumber"; const char location_image[] = "locationImage"; const char is_suscribed[] = "isSubscribed"; +const char message_data[] = "messageData"; } // namespace strings namespace json { diff --git a/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc b/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc index 7b5cf5fd9..f5e8808d3 100644 --- a/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc +++ b/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc @@ -31,9 +31,11 @@ POSSIBILITY OF SUCH DAMAGE. */ +#include #include "application_manager/commands/mobile/diagnostic_message_request.h" #include "application_manager/application_manager_impl.h" #include "application_manager/application_impl.h" +#include "config_profile/profile.h" #include "interfaces/HMI_API.h" namespace application_manager { @@ -50,15 +52,34 @@ DiagnosticMessageRequest::~DiagnosticMessageRequest() { void DiagnosticMessageRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); - ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application( - connection_key()); + ApplicationSharedPtr app = + ApplicationManagerImpl::instance()->application(connection_key()); if (!app) { - LOG4CXX_ERROR_EXT(logger_, "An application is not registered."); + LOG4CXX_ERROR(logger_, "Application is not registered."); SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); return; } + const std::vector& supported_diag_modes = + profile::Profile::instance()->supported_diag_modes(); + + uint32_t message_data_length = + (*message_)[strings::msg_params][strings::message_data].length(); + for (uint32_t i = 0; i < message_data_length; ++i) { + uint32_t message_data = + (*message_)[strings::msg_params][strings::message_data][i].asUInt(); + if (supported_diag_modes.end() == std::find(supported_diag_modes.begin(), + supported_diag_modes.end(), + message_data)) { + LOG4CXX_ERROR(logger_, "Received message data " << message_data << + " not supported"); + SendResponse(false, mobile_apis::Result::REJECTED, + "Received message data not supported"); + return; + } + } + // Add app_id for HMI request (*message_)[strings::msg_params][strings::app_id] = app->app_id(); -- cgit v1.2.1