summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2020-12-10 09:19:31 -0500
committerGitHub <noreply@github.com>2020-12-10 09:19:31 -0500
commit2e5c3ab677e667d86304ee169d32fbd4215d70d0 (patch)
tree76393e10533c60ae600a9b27e0ebd422bfe39561
parent13dcd6f5f36d462f0b0892864340fb9e84ad5884 (diff)
parent77120181e8ac427588734c9d798ce392b1c3c0bc (diff)
downloadsdl_core-2e5c3ab677e667d86304ee169d32fbd4215d70d0.tar.gz
Merge pull request #3590 from smartdevicelink/fix/vehicle_data_params_omitted
Handle omitted parameter permissions properly in OnVehicleData notification
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/on_vehicle_data_notification.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/on_vehicle_data_notification.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/on_vehicle_data_notification.cc
index 1799d7068c..ef0f1614af 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/on_vehicle_data_notification.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/on_vehicle_data_notification.cc
@@ -112,15 +112,22 @@ void OnVehicleDataNotification::Run() {
mobile_api::FunctionID::OnVehicleDataID),
appSO[idx].enumerate(),
&params_permissions);
-
- for (const auto& param : appSO[idx].enumerate()) {
- const auto& allowed_params = params_permissions.allowed_params;
- auto param_allowed = allowed_params.find(param);
- if (allowed_params.end() == param_allowed) {
- SDL_LOG_DEBUG("Param " << param << " is not allowed by policy for app "
- << notify_apps[idx]->app_id()
- << ". It will be ignored.");
- appSO[idx].erase(param);
+ if (parameters_permissions_.allowed_params.empty() &&
+ parameters_permissions_.disallowed_params.empty() &&
+ parameters_permissions_.undefined_params.empty()) {
+ SDL_LOG_DEBUG(
+ "No parameter permissions provided, all params are allowed");
+ } else {
+ for (const auto& param : appSO[idx].enumerate()) {
+ const auto& allowed_params = params_permissions.allowed_params;
+ auto param_allowed = allowed_params.find(param);
+ if (allowed_params.end() == param_allowed) {
+ SDL_LOG_DEBUG("Param " << param
+ << " is not allowed by policy for app "
+ << notify_apps[idx]->app_id()
+ << ". It will be ignored.");
+ appSO[idx].erase(param);
+ }
}
}