diff options
author | JackLivio <jack@livio.io> | 2018-11-19 17:45:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-19 17:45:58 -0500 |
commit | 49c7864f63268b3b314bf98e9c47a4c0b3613573 (patch) | |
tree | e0896bed776eab36903963e10ed0f11d2b161495 | |
parent | d36316738785c96dab2ee892762ed08c059fffde (diff) | |
parent | 540ab9de9434cc8eeb0d032a70acda52b220d1d8 (diff) | |
download | sdl_core-49c7864f63268b3b314bf98e9c47a4c0b3613573.tar.gz |
Merge pull request #2756 from smartdevicelink/release/5.0.15.0.1
Release 5.0.1
3 files changed, 34 insertions, 11 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc index 863e179040..628eaa2e58 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc @@ -68,8 +68,12 @@ void ButtonGetCapabilitiesResponse::Run() { hmi_capabilities.set_button_capabilities( (*message_)[strings::msg_params][hmi_response::capabilities]); - hmi_capabilities.set_preset_bank_capabilities( - (*message_)[strings::msg_params][hmi_response::preset_bank_capabilities]); + if ((*message_)[strings::msg_params].keyExists( + hmi_response::preset_bank_capabilities)) { + hmi_capabilities.set_preset_bank_capabilities( + (*message_)[strings::msg_params] + [hmi_response::preset_bank_capabilities]); + } } } // namespace commands diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc index b78e541f17..10b0b41a58 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc @@ -36,6 +36,7 @@ #include "sdl_rpc_plugin/commands/mobile/on_system_request_notification.h" #include "interfaces/MOBILE_API.h" #include "utils/file_system.h" +#include "utils/helpers.h" #include "policy/policy_table/enums.h" #include "application_manager/application_manager.h" #include "application_manager/policies/policy_handler_interface.h" @@ -65,6 +66,7 @@ void OnSystemRequestNotification::Run() { LOG4CXX_AUTO_TRACE(logger_); using namespace application_manager; using namespace mobile_apis; + using namespace helpers; ApplicationSharedPtr app = application_manager_.application(connection_key()); @@ -106,17 +108,33 @@ void OnSystemRequestNotification::Run() { } } - if (mobile_apis::RequestType::PROPRIETARY == request_type) { - /* According to requirements: - "If the requestType = PROPRIETARY, add to mobile API fileType = JSON - If the requestType = HTTP, add to mobile API fileType = BINARY" - Also in Genivi SDL we don't save the PT to file - we put it directly in - binary_data */ + LOG4CXX_DEBUG(logger_, + "Processing Request type : " << stringified_request_type); + + const bool binary_data_is_required = + Compare<mobile_apis::RequestType::eType, EQ, ONE>( + request_type, + mobile_apis::RequestType::PROPRIETARY, + mobile_apis::RequestType::OEM_SPECIFIC); + BinaryMessage binary_data; + if (binary_data_is_required) { const std::string filename = (*message_)[strings::msg_params][strings::file_name].asString(); - BinaryMessage binary_data; file_system::ReadBinaryFile(filename, binary_data); + } + + if (mobile_apis::RequestType::OEM_SPECIFIC == request_type) { + (*message_)[strings::params][strings::binary_data] = binary_data; + } + + if (mobile_apis::RequestType::PROPRIETARY == request_type) { +/* According to requirements: + "If the requestType = PROPRIETARY, add to mobile API fileType = JSON + If the requestType = HTTP, add to mobile API fileType = BINARY" + Also in Genivi SDL we don't save the PT to file - we put it directly in + binary_data */ + #if defined(PROPRIETARY_MODE) AddHeader(binary_data); #endif // PROPRIETARY_MODE @@ -126,7 +144,9 @@ void OnSystemRequestNotification::Run() { #endif // PROPRIETARY_MODE (*message_)[strings::msg_params][strings::file_type] = FileType::JSON; - } else if (mobile_apis::RequestType::HTTP == request_type) { + } + + if (mobile_apis::RequestType::HTTP == request_type) { (*message_)[strings::msg_params][strings::file_type] = FileType::BINARY; if ((*message_)[strings::msg_params].keyExists(strings::url)) { (*message_)[strings::msg_params][strings::timeout] = diff --git a/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc b/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc index 712b91afe7..bbd0011298 100644 --- a/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc +++ b/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc @@ -54,7 +54,6 @@ RPCPluginPtr LoadPlugin(const std::string& full_plugin_path) { return RPCPluginPtr(); } RPCPlugin* plugin = create_plugin(); - dlclose(plugin_dll); return RPCPluginPtr(plugin); } |