From 70953440b8bca01bd63eaeba3db47e4f9fe64454 Mon Sep 17 00:00:00 2001 From: Sho Amano Date: Tue, 27 Mar 2018 03:35:24 +0900 Subject: Fix/unregister while audio pass thru (#1757) * fix build error in MockMediaManager * Add SetMockMediaManager * add AudioPassThru start/stop tests * Add new BeginAudioPassThru() and EndAudioPassThru() methods * fix: don't terminate AudioPassThru when another app is unregistered * Append DEPRECATED macro only in interface header file and mock file. * Use @deprecated comments --- .../application_manager/application_manager_impl.h | 25 +++++ .../src/application_manager_impl.cc | 31 +++++- .../commands/mobile/end_audio_pass_thru_request.cc | 5 +- .../mobile/perform_audio_pass_thru_request.cc | 8 +- .../test/application_manager_impl_test.cc | 117 +++++++++++++++++++++ .../mobile/end_audio_pass_thru_request_test.cc | 3 +- .../mobile/perform_audio_pass_thru_test.cc | 41 +++++--- .../application_manager/application_manager.h | 21 +++- .../application_manager/mock_application_manager.h | 6 +- .../test/media_manager/mock_media_manager.h | 2 +- 10 files changed, 234 insertions(+), 25 deletions(-) diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h index 3e7fab60fb..286ad87018 100644 --- a/src/components/application_manager/include/application_manager/application_manager_impl.h +++ b/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -478,18 +478,35 @@ class ApplicationManagerImpl uint32_t GetNextHMICorrelationID() OVERRIDE; /* @brief Starts audio passthru process + * @deprecated Use BeginAudioPassThru(uint32_t app_id) instead * * @return true on success, false if passthru is already in process */ bool BeginAudioPassThrough() OVERRIDE; + /** + * @brief Starts AudioPassThru process by given application + * @param app_id ID of the application which starts the process + * @return true if AudioPassThru can be started, false otherwise + */ + bool BeginAudioPassThru(uint32_t app_id) OVERRIDE; + /* * @brief Finishes already started audio passthru process + * @deprecated Use EndAudioPassThru(uint32_t app_id) instead * * @return true on success, false if passthru is not active */ bool EndAudioPassThrough() OVERRIDE; + /** + * @brief Finishes already started AudioPassThru process by given application + * @param app_id ID of the application which started the process + * @return true if AudioPassThru process has been started with given + * application and thus it can be stopped, false otherwise + */ + bool EndAudioPassThru(uint32_t app_id) OVERRIDE; + /* * @brief Retrieves driver distraction state * @@ -1702,6 +1719,7 @@ class ApplicationManagerImpl std::map tts_global_properties_app_list_; bool audio_pass_thru_active_; + uint32_t audio_pass_thru_app_id_; sync_primitives::Lock audio_pass_thru_lock_; sync_primitives::Lock tts_global_properties_app_list_lock_; hmi_apis::Common_DriverDistractionState::eType driver_distraction_state_; @@ -1820,6 +1838,13 @@ class ApplicationManagerImpl */ void AddMockApplication(ApplicationSharedPtr mock_app); + /** + * @brief set a mock media manager without running Init(). Only for unit + * testing. + * @param mock_app the mock app to be registered + */ + void SetMockMediaManager(media_manager::MediaManager* mock_media_manager); + private: #endif diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index f16c21ea84..248b54fee5 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -143,6 +143,7 @@ ApplicationManagerImpl::ApplicationManagerImpl( : settings_(am_settings) , applications_list_lock_(true) , audio_pass_thru_active_(false) + , audio_pass_thru_app_id_(0) , driver_distraction_state_( hmi_apis::Common_DriverDistractionState::INVALID_ENUM) , is_vr_session_strated_(false) @@ -784,6 +785,17 @@ bool ApplicationManagerImpl::BeginAudioPassThrough() { } } +bool ApplicationManagerImpl::BeginAudioPassThru(uint32_t app_id) { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (audio_pass_thru_active_) { + return false; + } else { + audio_pass_thru_active_ = true; + audio_pass_thru_app_id_ = app_id; + return true; + } +} + bool ApplicationManagerImpl::EndAudioPassThrough() { sync_primitives::AutoLock lock(audio_pass_thru_lock_); if (audio_pass_thru_active_) { @@ -794,6 +806,17 @@ bool ApplicationManagerImpl::EndAudioPassThrough() { } } +bool ApplicationManagerImpl::EndAudioPassThru(uint32_t app_id) { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (audio_pass_thru_active_ && audio_pass_thru_app_id_ == app_id) { + audio_pass_thru_active_ = false; + audio_pass_thru_app_id_ = 0; + return true; + } else { + return false; + } +} + hmi_apis::Common_DriverDistractionState::eType ApplicationManagerImpl::driver_distraction_state() const { return driver_distraction_state_; @@ -3222,9 +3245,8 @@ void ApplicationManagerImpl::UnregisterApplication( commands_holder_->Clear(app_to_remove); - if (audio_pass_thru_active_) { + if (EndAudioPassThru(app_id)) { // May be better to put this code in MessageHelper? - EndAudioPassThrough(); StopAudioPassThru(app_id); MessageHelper::SendStopAudioPathThru(*this); } @@ -4441,6 +4463,11 @@ void ApplicationManagerImpl::AddMockApplication(ApplicationSharedPtr mock_app) { apps_size_ = applications_.size(); applications_list_lock_.Release(); } + +void ApplicationManagerImpl::SetMockMediaManager( + media_manager::MediaManager* mock_media_manager) { + media_manager_ = mock_media_manager; +} #endif // BUILD_TESTS #ifdef SDL_REMOTE_CONTROL struct MobileAppIdPredicate { diff --git a/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc index 0bd83078e5..fb168e4256 100644 --- a/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc +++ b/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc @@ -66,9 +66,10 @@ void EndAudioPassThruRequest::on_event(const event_engine::Event& event) { const bool result = PrepareResultForMobileResponse( result_code, HmiInterfaces::HMI_INTERFACE_UI); if (result) { - bool ended_successfully = application_manager_.EndAudioPassThrough(); + uint32_t app_id = connection_key(); + bool ended_successfully = application_manager_.EndAudioPassThru(app_id); if (ended_successfully) { - application_manager_.StopAudioPassThru(connection_key()); + application_manager_.StopAudioPassThru(app_id); } } diff --git a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc index a05d41c098..20076ac50c 100644 --- a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc +++ b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc @@ -311,7 +311,8 @@ void PerformAudioPassThruRequest::SendRecordStartNotification() { void PerformAudioPassThruRequest::StartMicrophoneRecording() { LOG4CXX_AUTO_TRACE(logger_); - application_manager_.BeginAudioPassThrough(); + uint32_t app_id = connection_key(); + application_manager_.BeginAudioPassThru(app_id); application_manager_.StartAudioPassThruThread( connection_key(), @@ -370,9 +371,10 @@ bool PerformAudioPassThruRequest::IsWhiteSpaceExist() { void PerformAudioPassThruRequest::FinishTTSSpeak() { LOG4CXX_AUTO_TRACE(logger_); - if (application_manager_.EndAudioPassThrough()) { + uint32_t app_id = connection_key(); + if (application_manager_.EndAudioPassThru(app_id)) { LOG4CXX_DEBUG(logger_, "Stop AudioPassThru."); - application_manager_.StopAudioPassThru(connection_key()); + application_manager_.StopAudioPassThru(app_id); } if (!IsInterfaceAwaited(HmiInterfaces::HMI_INTERFACE_TTS)) { LOG4CXX_WARN(logger_, "TTS Speak is inactive."); diff --git a/src/components/application_manager/test/application_manager_impl_test.cc b/src/components/application_manager/test/application_manager_impl_test.cc index e54bc612ca..c922c227bb 100644 --- a/src/components/application_manager/test/application_manager_impl_test.cc +++ b/src/components/application_manager/test/application_manager_impl_test.cc @@ -47,6 +47,7 @@ #include "application_manager/test/include/application_manager/mock_message_helper.h" #include "connection_handler/mock_connection_handler.h" #include "hmi_message_handler/mock_hmi_message_handler.h" +#include "media_manager/mock_media_manager.h" #include "policy/mock_policy_settings.h" #include "policy/usage_statistics/mock_statistics_manager.h" #include "protocol/bson_object_keys.h" @@ -824,6 +825,122 @@ TEST_F(ApplicationManagerImplTest, EXPECT_EQ(new_application_id, app_impl->app_id()); } +TEST_F(ApplicationManagerImplTest, StartStopAudioPassThru) { + std::string dummy_file_name; + ON_CALL(mock_application_manager_settings_, recording_file_name()) + .WillByDefault(ReturnRef(dummy_file_name)); + + NiceMock + mock_media_manager; + app_manager_impl_->SetMockMediaManager(&mock_media_manager); + + const uint32_t app_id = 65537; + const int32_t max_duration = 1000; + // below are not used + const int32_t correlation_id = 0; + const int32_t sampling_rate = 0; + const int32_t bits_per_sample = 0; + const int32_t audio_type = 0; + + EXPECT_CALL(mock_media_manager, + StartMicrophoneRecording(app_id, _, max_duration)) + .WillOnce(Return()); + EXPECT_CALL(mock_media_manager, StopMicrophoneRecording(app_id)) + .WillOnce(Return()); + + bool result = app_manager_impl_->BeginAudioPassThru(app_id); + EXPECT_TRUE(result); + if (result) { + app_manager_impl_->StartAudioPassThruThread(app_id, + correlation_id, + max_duration, + sampling_rate, + bits_per_sample, + audio_type); + } + + result = app_manager_impl_->EndAudioPassThru(app_id); + EXPECT_TRUE(result); + if (result) { + app_manager_impl_->StopAudioPassThru(app_id); + } +} + +TEST_F(ApplicationManagerImplTest, UnregisterAnotherAppDuringAudioPassThru) { + std::string dummy_file_name; + ON_CALL(mock_application_manager_settings_, recording_file_name()) + .WillByDefault(ReturnRef(dummy_file_name)); + + const uint32_t app_id_1 = 65537; + const uint32_t app_id_2 = 65538; + + std::string dummy_mac_address; + utils::SharedPtr mock_app_1 = + utils::SharedPtr(new MockApplication()); + EXPECT_CALL(*mock_app_1, app_id()).WillRepeatedly(Return(app_id_1)); + EXPECT_CALL(*mock_app_1, device()).WillRepeatedly(Return(0)); + EXPECT_CALL(*mock_app_1, mac_address()) + .WillRepeatedly(ReturnRef(dummy_mac_address)); + EXPECT_CALL(*mock_app_1, policy_app_id()).WillRepeatedly(Return("")); + EXPECT_CALL(*mock_app_1, protocol_version()) + .WillRepeatedly( + Return(protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_4)); + + utils::SharedPtr mock_app_2 = + utils::SharedPtr(new MockApplication()); + EXPECT_CALL(*mock_app_2, app_id()).WillRepeatedly(Return(app_id_2)); + EXPECT_CALL(*mock_app_2, device()).WillRepeatedly(Return(0)); + EXPECT_CALL(*mock_app_2, mac_address()) + .WillRepeatedly(ReturnRef(dummy_mac_address)); + EXPECT_CALL(*mock_app_2, policy_app_id()).WillRepeatedly(Return("")); + EXPECT_CALL(*mock_app_2, protocol_version()) + .WillRepeatedly( + Return(protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_4)); + + NiceMock + mock_media_manager; + app_manager_impl_->SetMockMediaManager(&mock_media_manager); + + app_manager_impl_->AddMockApplication(mock_app_1); + app_manager_impl_->AddMockApplication(mock_app_2); + + const int32_t max_duration = 1000; + // below are not used + const int32_t correlation_id = 0; + const int32_t sampling_rate = 0; + const int32_t bits_per_sample = 0; + const int32_t audio_type = 0; + + EXPECT_CALL(mock_media_manager, + StartMicrophoneRecording(app_id_2, _, max_duration)) + .WillOnce(Return()); + EXPECT_CALL(mock_media_manager, StopMicrophoneRecording(app_id_2)) + .WillOnce(Return()); + + // app 2 starts Audio Pass Thru + bool result = app_manager_impl_->BeginAudioPassThru(app_id_2); + EXPECT_TRUE(result); + if (result) { + app_manager_impl_->StartAudioPassThruThread(app_id_2, + correlation_id, + max_duration, + sampling_rate, + bits_per_sample, + audio_type); + } + + // while running APT, app 1 is unregistered + app_manager_impl_->UnregisterApplication( + app_id_1, mobile_apis::Result::SUCCESS, false, true); + + // confirm that APT is still running + result = app_manager_impl_->EndAudioPassThru(app_id_2); + EXPECT_TRUE(result); + if (result) { + app_manager_impl_->StopAudioPassThru(app_id_2); + } +} + } // application_manager_test } // namespace components } // namespace test diff --git a/src/components/application_manager/test/commands/mobile/end_audio_pass_thru_request_test.cc b/src/components/application_manager/test/commands/mobile/end_audio_pass_thru_request_test.cc index 33733f63ed..6b1d909121 100644 --- a/src/components/application_manager/test/commands/mobile/end_audio_pass_thru_request_test.cc +++ b/src/components/application_manager/test/commands/mobile/end_audio_pass_thru_request_test.cc @@ -67,6 +67,7 @@ class EndAudioPassThruRequestTest TEST_F(EndAudioPassThruRequestTest, OnEvent_UI_UNSUPPORTED_RESOUCRE) { const uint32_t kConnectionKey = 2u; + const uint32_t app_id = kConnectionKey; MessageSharedPtr command_msg(CreateMessage(smart_objects::SmartType_Map)); (*command_msg)[am::strings::params][am::strings::connection_key] = @@ -83,7 +84,7 @@ TEST_F(EndAudioPassThruRequestTest, OnEvent_UI_UNSUPPORTED_RESOUCRE) { Event event(hmi_apis::FunctionID::UI_EndAudioPassThru); event.set_smart_object(*event_msg); - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(false)); + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(false)); MessageSharedPtr ui_command_result; EXPECT_CALL( diff --git a/src/components/application_manager/test/commands/mobile/perform_audio_pass_thru_test.cc b/src/components/application_manager/test/commands/mobile/perform_audio_pass_thru_test.cc index 6c35a5372a..a27bac970c 100644 --- a/src/components/application_manager/test/commands/mobile/perform_audio_pass_thru_test.cc +++ b/src/components/application_manager/test/commands/mobile/perform_audio_pass_thru_test.cc @@ -128,6 +128,8 @@ class PerformAudioPassThruRequestTest ON_CALL(app_mngr_, application(kConnectionKey)) .WillByDefault(Return(mock_app_)); ON_CALL(*mock_app_, app_id()).WillByDefault(Return(kConnectionKey)); + (*message_)[am::strings::params][am::strings::connection_key] = + kConnectionKey; command_sptr_ = CreateCommand(message_); @@ -160,10 +162,15 @@ TEST_F(PerformAudioPassThruRequestTest, OnTimeout_GENERIC_ERROR) { am::mobile_api::Result::GENERIC_ERROR; (*msg_ui)[am::strings::msg_params][am::strings::success] = false; + MessageSharedPtr message = + utils::MakeShared(::smart_objects::SmartType_Map); + (*message)[am::strings::params][am::strings::connection_key] = kConnectionKey; + utils::SharedPtr command = - CreateCommand(); + CreateCommand(message); - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(true)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(true)); EXPECT_CALL(app_mngr_, StopAudioPassThru(_)); EXPECT_CALL( @@ -232,7 +239,8 @@ TEST_F(PerformAudioPassThruRequestTest, event_ui.set_smart_object(*response_ui); MessageSharedPtr response_to_mobile; - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(false)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(false)); EXPECT_CALL(app_mngr_, ManageHMICommand(_)).WillRepeatedly(Return(true)); EXPECT_CALL( app_mngr_, @@ -362,7 +370,8 @@ TEST_F(PerformAudioPassThruRequestTest, hmi_apis::Common_Result::GENERIC_ERROR; event.set_smart_object(*message_); - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(false)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(false)); ON_CALL(app_mngr_, GetNextHMICorrelationID()) .WillByDefault(Return(kCorrelationId)); @@ -536,7 +545,8 @@ TEST_F( } // Start microphone recording cals - EXPECT_CALL(app_mngr_, BeginAudioPassThrough()); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, BeginAudioPassThru(app_id)); EXPECT_CALL(app_mngr_, StartAudioPassThruThread(_, _, _, _, _, _)); CallRun caller(*command_sptr_); @@ -581,7 +591,8 @@ TEST_F(PerformAudioPassThruRequestTest, EXPECT_CALL(app_mngr_, ManageHMICommand(_)).WillOnce(Return(true)); // Start microphone recording cals - EXPECT_CALL(app_mngr_, BeginAudioPassThrough()); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, BeginAudioPassThru(app_id)); EXPECT_CALL(app_mngr_, StartAudioPassThruThread(_, _, _, _, _, _)); EXPECT_CALL(app_mngr_, updateRequestTimeout(_, _, _)); @@ -617,7 +628,8 @@ TEST_F(PerformAudioPassThruRequestTest, caller_speak(); // Second call for test correct behavior of UI_PerformAudioPassThru event - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(false)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(false)); EXPECT_CALL(app_mngr_, StopAudioPassThru(_)).Times(0); ON_CALL(mock_hmi_interfaces_, GetInterfaceState(_)) .WillByDefault(Return(am::HmiInterfaces::STATE_AVAILABLE)); @@ -641,7 +653,8 @@ TEST_F(PerformAudioPassThruRequestTest, EXPECT_CALL(app_mngr_, ManageHMICommand(_)).WillOnce(Return(true)); - EXPECT_CALL(app_mngr_, BeginAudioPassThrough()).WillOnce(Return(true)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, BeginAudioPassThru(app_id)).WillOnce(Return(true)); EXPECT_CALL( app_mngr_, @@ -664,8 +677,9 @@ TEST_F(PerformAudioPassThruRequestTest, msg_params_[am::strings::connection_key] = kConnectionKey; msg_params_[am::strings::function_id] = kFunctionId; + uint32_t app_id = kConnectionKey; EXPECT_CALL(app_mngr_, ManageHMICommand(_)).WillOnce(Return(true)); - EXPECT_CALL(app_mngr_, BeginAudioPassThrough()).WillOnce(Return(true)); + EXPECT_CALL(app_mngr_, BeginAudioPassThru(app_id)).WillOnce(Return(true)); EXPECT_CALL( app_mngr_, @@ -683,8 +697,9 @@ TEST_F(PerformAudioPassThruRequestTest, TEST_F(PerformAudioPassThruRequestTest, OnEvent_DefaultCase) { am::event_engine::Event event(hmi_apis::FunctionID::INVALID_ENUM); + uint32_t app_id = kConnectionKey; EXPECT_CALL(app_mngr_, updateRequestTimeout(_, _, _)).Times(0); - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).Times(0); + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).Times(0); CallOnEvent caller(*command_sptr_, event); caller(); @@ -703,7 +718,8 @@ TEST_F(PerformAudioPassThruRequestTest, Init_CorrectTimeout) { TEST_F(PerformAudioPassThruRequestTest, onTimeOut_ttsSpeakNotActive_DontSendHMIReqeust) { - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(true)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(true)); EXPECT_CALL(app_mngr_, StopAudioPassThru(_)); // For setting current_state_ -> kCompleted @@ -717,7 +733,8 @@ TEST_F(PerformAudioPassThruRequestTest, TEST_F(PerformAudioPassThruRequestTest, DISABLED_onTimeOut_ttsSpeakActive_SendHMIReqeust) { - EXPECT_CALL(app_mngr_, EndAudioPassThrough()).WillOnce(Return(true)); + uint32_t app_id = kConnectionKey; + EXPECT_CALL(app_mngr_, EndAudioPassThru(app_id)).WillOnce(Return(true)); EXPECT_CALL(app_mngr_, StopAudioPassThru(_)); EXPECT_CALL(*application_sptr_, hmi_level()) diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h index eb9159f0b3..c7a50199b1 100644 --- a/src/components/include/application_manager/application_manager.h +++ b/src/components/include/application_manager/application_manager.h @@ -390,17 +390,34 @@ class ApplicationManager { virtual void EndNaviServices(uint32_t app_id) = 0; /* @brief Starts audio passthru process + * @deprecated Use BeginAudioPassThru(uint32_t app_id) instead * * @return true on success, false if passthru is already in process */ - virtual bool BeginAudioPassThrough() = 0; + DEPRECATED virtual bool BeginAudioPassThrough() = 0; + + /** + * @brief Starts AudioPassThru process by given application + * @param app_id ID of the application which starts the process + * @return true if AudioPassThru can be started, false otherwise + */ + virtual bool BeginAudioPassThru(uint32_t app_id) = 0; /* * @brief Finishes already started audio passthru process + * @deprecated Use EndAudioPassThru(uint32_t app_id) instead * * @return true on success, false if passthru is not active */ - virtual bool EndAudioPassThrough() = 0; + DEPRECATED virtual bool EndAudioPassThrough() = 0; + + /** + * @brief Finishes already started AudioPassThru process by given application + * @param app_id ID of the application which started the process + * @return true if AudioPassThru process has been started with given + * application and thus it can be stopped, false otherwise + */ + virtual bool EndAudioPassThru(uint32_t app_id) = 0; virtual void ConnectToDevice(const std::string& device_mac) = 0; diff --git a/src/components/include/test/application_manager/mock_application_manager.h b/src/components/include/test/application_manager/mock_application_manager.h index 58edcb637a..452a1e6c39 100644 --- a/src/components/include/test/application_manager/mock_application_manager.h +++ b/src/components/include/test/application_manager/mock_application_manager.h @@ -161,8 +161,10 @@ class MockApplicationManager : public application_manager::ApplicationManager { MOCK_METHOD0(GetNextHMICorrelationID, uint32_t()); MOCK_METHOD0(GenerateNewHMIAppID, uint32_t()); MOCK_METHOD1(EndNaviServices, void(uint32_t app_id)); - MOCK_METHOD0(BeginAudioPassThrough, bool()); - MOCK_METHOD0(EndAudioPassThrough, bool()); + DEPRECATED MOCK_METHOD0(BeginAudioPassThrough, bool()); + MOCK_METHOD1(BeginAudioPassThru, bool(uint32_t app_id)); + DEPRECATED MOCK_METHOD0(EndAudioPassThrough, bool()); + MOCK_METHOD1(EndAudioPassThru, bool(uint32_t app_id)); MOCK_METHOD1(ConnectToDevice, void(const std::string& device_mac)); MOCK_METHOD0(OnHMIStartedCooperation, void()); MOCK_CONST_METHOD0(IsHMICooperating, bool()); diff --git a/src/components/include/test/media_manager/mock_media_manager.h b/src/components/include/test/media_manager/mock_media_manager.h index 9cd2a05fc0..b58cfab5d7 100644 --- a/src/components/include/test/media_manager/mock_media_manager.h +++ b/src/components/include/test/media_manager/mock_media_manager.h @@ -56,7 +56,7 @@ class MockMediaManager : public media_manager::MediaManager { protocol_handler::ServiceType service_type)); MOCK_METHOD2(FramesProcessed, void(int32_t application_key, int32_t frame_number)); - MOCK_CONST_METHOD0(settings, const MediaManagerSettings&()); + MOCK_CONST_METHOD0(settings, const media_manager::MediaManagerSettings&()); }; } // namespace media_manager_test -- cgit v1.2.1 From e15e3537c9fa898b6e6142ff01e75d23391f959a Mon Sep 17 00:00:00 2001 From: jacobkeeler Date: Thu, 5 Apr 2018 14:18:49 -0400 Subject: Don't force a PTU when an invalid PT is received --- .../application_manager/src/policies/policy_handler.cc | 3 +-- src/components/application_manager/test/policy_handler_test.cc | 1 - .../policy/policy_external/src/policy_manager_impl.cc | 10 ++++++++-- .../policy/policy_regular/src/policy_manager_impl.cc | 10 ++++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index bbf391a9f1..559b9c0035 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -1091,8 +1091,7 @@ bool PolicyHandler::ReceiveMessageFromSDK(const std::string& file, MessageHelper::CreateGetVehicleDataRequest( correlation_id, vehicle_data_args, application_manager_); } else { - LOG4CXX_WARN(logger_, "Exchange wasn't successful, trying another one."); - policy_manager_->ForcePTExchange(); + LOG4CXX_WARN(logger_, "Exchange wasn't successful"); } OnPTUFinished(ret); return ret; diff --git a/src/components/application_manager/test/policy_handler_test.cc b/src/components/application_manager/test/policy_handler_test.cc index 77500fd238..d9e1cefa01 100644 --- a/src/components/application_manager/test/policy_handler_test.cc +++ b/src/components/application_manager/test/policy_handler_test.cc @@ -408,7 +408,6 @@ TEST_F(PolicyHandlerTest, ReceiveMessageFromSDK_PTNotLoaded) { // Checks EXPECT_CALL(*mock_policy_manager_, LoadPT("", msg)).WillOnce(Return(false)); - EXPECT_CALL(*mock_policy_manager_, ForcePTExchange()).WillOnce(Return("")); EXPECT_CALL(app_manager_, GetNextHMICorrelationID()).Times(0); EXPECT_CALL(mock_message_helper_, CreateGetVehicleDataRequest(_, _, _)) .Times(0); diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc index 2cd0d2b23b..aefd630b25 100644 --- a/src/components/policy/policy_external/src/policy_manager_impl.cc +++ b/src/components/policy/policy_external/src/policy_manager_impl.cc @@ -313,7 +313,10 @@ bool PolicyManagerImpl::LoadPT(const std::string& file, utils::SharedPtr policy_table_snapshot = cache_->GenerateSnapshot(); if (!policy_table_snapshot) { - LOG4CXX_ERROR(logger_, "Failed to create snapshot of policy table"); + LOG4CXX_ERROR( + logger_, + "Failed to create snapshot of policy table, trying another exchange"); + ForcePTExchange(); return false; } @@ -327,7 +330,10 @@ bool PolicyManagerImpl::LoadPT(const std::string& file, // Replace current data with updated if (!cache_->ApplyUpdate(*pt_update)) { - LOG4CXX_WARN(logger_, "Unsuccessful save of updated policy table."); + LOG4CXX_WARN( + logger_, + "Unsuccessful save of updated policy table, trying another exchange"); + ForcePTExchange(); return false; } diff --git a/src/components/policy/policy_regular/src/policy_manager_impl.cc b/src/components/policy/policy_regular/src/policy_manager_impl.cc index 39b303cbb5..3e08147a4c 100644 --- a/src/components/policy/policy_regular/src/policy_manager_impl.cc +++ b/src/components/policy/policy_regular/src/policy_manager_impl.cc @@ -196,7 +196,10 @@ bool PolicyManagerImpl::LoadPT(const std::string& file, utils::SharedPtr policy_table_snapshot = cache_->GenerateSnapshot(); if (!policy_table_snapshot) { - LOG4CXX_ERROR(logger_, "Failed to create snapshot of policy table"); + LOG4CXX_ERROR( + logger_, + "Failed to create snapshot of policy table, trying another exchange"); + ForcePTExchange(); return false; } @@ -209,7 +212,10 @@ bool PolicyManagerImpl::LoadPT(const std::string& file, // Replace current data with updated if (!cache_->ApplyUpdate(*pt_update)) { - LOG4CXX_WARN(logger_, "Unsuccessful save of updated policy table."); + LOG4CXX_WARN( + logger_, + "Unsuccessful save of updated policy table, trying another exchange"); + ForcePTExchange(); return false; } -- cgit v1.2.1 From 667d130e553200e2fc7ffdf222490b669b976f1c Mon Sep 17 00:00:00 2001 From: JackLivio Date: Tue, 10 Apr 2018 10:56:13 -0400 Subject: Update Apache License Update license to note that the files have been modified from original form. `Note: This file has been modified from its original form.` --- src/3rd_party/apache-log4cxx-0.10.0/src/examples/cpp/console.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetdecoder.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetencoder.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/locationinfo.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/loggingevent.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/sockethubappender.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/threadcxx.cpp | 2 ++ src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h | 2 ++ .../src/main/include/log4cxx/spi/location/locationinfo.h | 2 ++ .../apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h | 2 ++ 14 files changed, 28 insertions(+) diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/examples/cpp/console.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/examples/cpp/console.cpp index 9fda7c8eb4..157982e845 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/examples/cpp/console.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/examples/cpp/console.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetdecoder.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetdecoder.cpp index ea5a680a6c..0336b8dafa 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetdecoder.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetdecoder.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetencoder.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetencoder.cpp index 6b1f564666..adb8f8526d 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetencoder.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/charsetencoder.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp index 2963b45619..40e3b67bd0 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/locationinfo.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/locationinfo.cpp index e74d015335..db058d27bd 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/locationinfo.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/locationinfo.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp index 203cb5c346..37b57180a2 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/loggingevent.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/loggingevent.cpp index 1faae3f702..58b2004216 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/loggingevent.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/loggingevent.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp index f2b5de61c7..e5c1b29be9 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/sockethubappender.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/sockethubappender.cpp index 09f5d8ce31..5ef4b1b794 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/sockethubappender.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/sockethubappender.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp index d5166dc8ec..a0e30aa6aa 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/threadcxx.cpp b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/threadcxx.cpp index fffb43a66a..a40df3be94 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/threadcxx.cpp +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/cpp/threadcxx.cpp @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #include diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h index 5d82b36b39..8f5fac2341 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #ifndef _LOG4CXX_LOGGER_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h index fc98121dce..f07216afe2 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #ifndef _LOG4CXX_SPI_LOCATION_LOCATIONINFO_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h index 2c9c353f8b..58deb3694a 100644 --- a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Note: This file has been modified from its original form. */ #ifndef _LOG4CXX_SPI_LOGGING_EVENT_H -- cgit v1.2.1 From 255c18b4352dfde12632ab812f81b68fb256de32 Mon Sep 17 00:00:00 2001 From: jacobkeeler Date: Thu, 12 Apr 2018 16:22:28 -0400 Subject: Fix style issues --- .../include/hmi_message_handler/mb_controller.h | 2 +- .../include/hmi_message_handler/websocket_session.h | 2 +- src/components/hmi_message_handler/src/mb_controller.cc | 4 ++-- src/components/hmi_message_handler/src/websocket_session.cc | 2 +- .../policy/policy_external/src/policy_manager_impl.cc | 11 +++++------ 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/mb_controller.h b/src/components/hmi_message_handler/include/hmi_message_handler/mb_controller.h index 1bd74e09ea..60dc50ad7a 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/mb_controller.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/mb_controller.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2018 Livio, Inc. +Copyright (c) 2018 Livio, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/websocket_session.h b/src/components/hmi_message_handler/include/hmi_message_handler/websocket_session.h index 5d82a35679..9692c4aef4 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/websocket_session.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/websocket_session.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2018 Livio, Inc. +Copyright (c) 2018 Livio, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/src/components/hmi_message_handler/src/mb_controller.cc b/src/components/hmi_message_handler/src/mb_controller.cc index df3c3f16b2..8d3b11add5 100644 --- a/src/components/hmi_message_handler/src/mb_controller.cc +++ b/src/components/hmi_message_handler/src/mb_controller.cc @@ -1,5 +1,5 @@ /* -Copyright (c) 2018 Livio, Inc. +Copyright (c) 2018 Livio, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -27,7 +27,7 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + #include "hmi_message_handler/mb_controller.h" using namespace boost::beast::websocket; diff --git a/src/components/hmi_message_handler/src/websocket_session.cc b/src/components/hmi_message_handler/src/websocket_session.cc index 0327500a11..26f15695c9 100644 --- a/src/components/hmi_message_handler/src/websocket_session.cc +++ b/src/components/hmi_message_handler/src/websocket_session.cc @@ -1,5 +1,5 @@ /* -Copyright (c) 2018 Livio, Inc. +Copyright (c) 2018 Livio, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc index aefd630b25..a3736b9d23 100644 --- a/src/components/policy/policy_external/src/policy_manager_impl.cc +++ b/src/components/policy/policy_external/src/policy_manager_impl.cc @@ -594,8 +594,7 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id, policy_table::FunctionalGroupings functional_groupings; cache_->GetFunctionalGroupings(functional_groupings); - policy_table::Strings app_groups = - GetGroupsNames(app_group_permissions); + policy_table::Strings app_groups = GetGroupsNames(app_group_permissions); // Undefined groups (without user consent) disallowed by default, since // OnPermissionsChange notification has no "undefined" section @@ -627,8 +626,7 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id, } const bool known_rpc = rpc_permissions.end() != rpc_permissions.find(rpc); - LOG4CXX_DEBUG(logger_, "Is known rpc " << - (known_rpc ? "true" : "false") ); + LOG4CXX_DEBUG(logger_, "Is known rpc " << (known_rpc ? "true" : "false")); if (!known_rpc) { // RPC not found in list == disallowed by backend result.hmi_level_permitted = kRpcDisallowed; @@ -650,7 +648,9 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id, rpc_permissions[rpc].hmi_permissions[kUserDisallowedKey].find( hmi_level)) { // RPC found in allowed == allowed by backend, but disallowed by user - LOG4CXX_DEBUG(logger_, "RPC found in allowed == allowed by backend, but disallowed by user"); + LOG4CXX_DEBUG( + logger_, + "RPC found in allowed == allowed by backend, but disallowed by user"); result.hmi_level_permitted = kRpcUserDisallowed; } else { LOG4CXX_DEBUG(logger_, @@ -990,7 +990,6 @@ void PolicyManagerImpl::SetUserConsentForApp( const PermissionConsent& permissions, const NotificationMode mode) { LOG4CXX_AUTO_TRACE(logger_); - cache_->ResetCalculatedPermissions(); PermissionConsent verified_permissions = EnsureCorrectPermissionConsent(permissions); -- cgit v1.2.1 From e4aea9676350a8c0e084b9b1d88a2317b76b0dda Mon Sep 17 00:00:00 2001 From: jacobkeeler Date: Mon, 16 Apr 2018 10:36:23 -0400 Subject: Fix infinite PTU when invalid PT, then a valid PT is received --- src/components/policy/policy_external/src/policy_manager_impl.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc index a3736b9d23..433a7a6bca 100644 --- a/src/components/policy/policy_external/src/policy_manager_impl.cc +++ b/src/components/policy/policy_external/src/policy_manager_impl.cc @@ -1574,8 +1574,7 @@ void PolicyManagerImpl::OnUpdateStarted() { uint32_t update_timeout = TimeoutExchangeMSec(); LOG4CXX_DEBUG(logger_, "Update timeout will be set to (milisec): " << update_timeout); - send_on_update_sent_out_ = - !wrong_ptu_update_received_ && !update_status_manager_.IsUpdatePending(); + send_on_update_sent_out_ = !update_status_manager_.IsUpdatePending(); if (send_on_update_sent_out_) { update_status_manager_.OnUpdateSentOut(update_timeout); -- cgit v1.2.1