diff options
Diffstat (limited to 'video_in_hal/systemservice/logger_service/server/src/ss_logger_error_event.cpp')
-rwxr-xr-x | video_in_hal/systemservice/logger_service/server/src/ss_logger_error_event.cpp | 1047 |
1 files changed, 0 insertions, 1047 deletions
diff --git a/video_in_hal/systemservice/logger_service/server/src/ss_logger_error_event.cpp b/video_in_hal/systemservice/logger_service/server/src/ss_logger_error_event.cpp deleted file mode 100755 index 6e82da7..0000000 --- a/video_in_hal/systemservice/logger_service/server/src/ss_logger_error_event.cpp +++ /dev/null @@ -1,1047 +0,0 @@ -/* - * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * 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. - */ - -/////////////////////////////////////////////////////////////////////////////// -/// \ingroup tag_SS_LoggerService -/// \brief This file supports error event logging. -/// -/////////////////////////////////////////////////////////////////////////////// -#include "ss_logger_error_event.h" -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <boost/bind.hpp> -#include <unistd.h> -#include <sys/wait.h> -#include <native_service/frameworkunified_framework_if.h> -#include <system_service/ss_sm_client_if.h> -#include <system_service/ss_client_names.h> -#include <system_service/ss_logger_service_protocol.h> -#include <system_service/ss_logger_service.h> -#include <system_service/ss_services.h> -#include <system_service/ss_templates.h> -#include <stub/el_mem.h> -#include <native_service/cl_process.h> -#include <stub/Clock_API.h> -#include <string> -#include "loggerservicedebug_loggerservicelog.h" -#include "loggerservicedebug_thread_if.h" -#include "ss_logger_service_callbacks.h" -#include "ss_logger_error_event_archive.h" -#include "ss_logger_common.h" -#include "ss_logger_types.h" -#include "ss_logger_fs_directory.h" - -CErrorEvent::CErrorEvent() - : m_hApp(NULL), - m_bIsPrevEventCompleted(true), - m_errorEventNtfData(), - m_pLoggerCfg(NULL), - m_pReaderWriterControl(NULL), - m_ServiceName(""), - m_time(0), - m_currentEventTriggerNumber(0), - m_diagsessionhandle(NULL), - m_thrdEvntLogWriter(NULL), - m_sfd(-1) { // LCOV_EXCL_BR_LINE 11:Unexpected branch - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); -} // LCOV_EXCL_BR_LINE 11:Unexpected branch - -CErrorEvent::~CErrorEvent() { // LCOV_EXCL_START 14:globle instance - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); -} -// LCOV_EXCL_STOP - -EFrameworkunifiedStatus CErrorEvent::Initialize(HANDLE f_hApp, CLoggerCfg *f_pLoggerCfg, - CReaderWriterControl *f_pReaderWriterControl, - HANDLE f_thrdEvntLogWriter, - std::string f_strEvntLogQueWorkerName) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - Timer *l_pTimer; - - m_sfd = CL_ProcessInit(); - if (m_sfd == -1) { // LCOV_EXCL_BR_LINE 8:Because the process initialization is guaranteed to be successful - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error. m_sfd CL_ProcessInit() failed \n."); // LCOV_EXCL_LINE 8:Because the process initialization is guaranteed to be successful - } - - SS_LoggerServerEvents l_errorEventStateEvents[] = { - SS_LOGGER_SCREENCAPTURE_EVT }; - - FrameworkunifiedProtocolCallbackHandler l_smCallbacks[] = { - // Logging Protocol Callbacks - { SS_SM_EVENT_ERROR_TO_SSL, boost::bind(&CErrorEvent::OnStartLogging, - this, _1) }, { - SS_SM_ERROR_EVENT_LOGGING_START_RSPN, boost::bind( - &CErrorEvent::OnLogStartResponse, this, _1) }, { - SS_SM_ERROR_EVENT_ARTIFACT_RSPN, boost::bind( - &CErrorEvent::OnArtifactResponse, this, _1) } }; // LCOV_EXCL_BR_LINE 11:Unexpected branch - - FrameworkunifiedProtocolCallbackHandler l_selfCallbacks[] = { - // Logging Protocol Callbacks - { SS_LOGGER_ERROR_EVENT_ARTIFACT_REQ, boost::bind( - &CErrorEvent::OnArtifactRequest, this, _1) }, { - SS_SM_ERROR_EVENT_ARTIFACT_RSPN, boost::bind( - &CErrorEvent::OnArtifactResponse, this, _1) } }; // LCOV_EXCL_BR_LINE 11:Unexpected branch - - FrameworkunifiedProtocolCallbackHandler l_requesterCallbacks[] = { { - SS_LOGGER_SCREENCAPTURE_EVT_ACK, boost::bind( - &CErrorEvent::OnObtainScreenShotResponse, this, _1) } }; // LCOV_EXCL_BR_LINE 11:Unexpected branch - - FrameworkunifiedProtocolCallbackHandler l_storageThreadCallbacks[] = { { - eLoggerStorageThreadCmdOK, boost::bind(&CErrorEvent::OnStorageResponseOk, - this, _1) }, { - eLoggerStorageThreadCmdWriteFailed, boost::bind( - &CErrorEvent::OnStorageResponseWriteFailed, this, _1) }, { - eLoggerStorageThreadCmdNotFound, boost::bind( - &CErrorEvent::OnStorageResponseNotFound, this, _1) }, { - eLoggerStorageThreadCmdNoWritten, boost::bind( - &CErrorEvent::OnStorageResponseNoWritten, this, _1) } }; // LCOV_EXCL_BR_LINE 11:Unexpected branch - for (UI_32 i = 0; i < _countof(l_requesterCallbacks); i++) { - m_requesterCallbacksVec.push_back(l_requesterCallbacks[i]); // LCOV_EXCL_BR_LINE 11:Unexpected branch - } - - if (NULL == f_hApp) { // LCOV_EXCL_BR_LINE 6:As it is not always NULL - // LCOV_EXCL_START 6:As it is not always NULL - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - l_eStatus = eFrameworkunifiedStatusInvldHandle; - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, __FUNCTION__, - " Error. Argument f_hApp passed NULL pointer. Initialization failed."); - // LCOV_EXCL_STOP - } else if (NULL == (m_thrdEvntLogWriter = f_thrdEvntLogWriter)) { // LCOV_EXCL_BR_LINE 6:As it is not always NULL - // LCOV_EXCL_START 6:As it is not always NULL - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - l_eStatus = eFrameworkunifiedStatusInvldHandle; - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, __FUNCTION__, - " Error. Argument f_hApp passed NULL pointer. Initialization failed."); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = m_errorEventCfg.Initialize(f_pLoggerCfg))) { // LCOV_EXCL_BR_LINE 200:To ensure success - // LCOV_EXCL_START 200:To ensure success - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. m_errorEventCfg.Initialize() returned: %d.", l_eStatus); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(f_hApp, SERVICE_LOGGER, l_selfCallbacks, _countof(l_selfCallbacks)))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 4:NSFW - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. FrameworkunifiedAttachCallbacksToDispatcher(SERVICE_SYSMANAGER) returned: %d.", - l_eStatus); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(f_hApp, SERVICE_SYSMANAGER, l_smCallbacks, _countof(l_smCallbacks)))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 4:NSFW - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. FrameworkunifiedAttachCallbacksToDispatcher(SERVICE_SYSMANAGER) returned: %d.", - l_eStatus); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedDefineStateEvents(f_hApp, &l_errorEventStateEvents, static_cast<UI_32>(_countof(l_errorEventStateEvents))))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 4:NSFW - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. FrameworkunifiedDefineStateEvents(SS_LOGGER_SCREENCAPTURE_EVT) returned: %d", - l_eStatus); - // LCOV_EXCL_STOP - } else if (NULL == f_pLoggerCfg) { // LCOV_EXCL_BR_LINE 200:As it is not always NULL - // LCOV_EXCL_START 200:As it is not always NULL - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - l_eStatus = eFrameworkunifiedStatusNullPointer; - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error. f_pLoggerCfg passed NULL pointer."); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = m_loggerPopups.Initialize(f_pLoggerCfg))) { // LCOV_EXCL_BR_LINE 200:To ensure success // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 200:To ensure success - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. m_loggerPopups.Initialize(f_pLoggerCfg) returned: %d.", - l_eStatus); - // LCOV_EXCL_STOP - } else if (NULL == f_pReaderWriterControl) { // LCOV_EXCL_BR_LINE 200:As it is not always NULL - // LCOV_EXCL_START 200:As it is not always NULL - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - l_eStatus = eFrameworkunifiedStatusNullPointer; - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. Argument f_pReaderWriterControl passed NULL pointer."); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = m_loggerStorage.Initialize(f_hApp, AppName, f_pLoggerCfg))) { // LCOV_EXCL_BR_LINE 200:To ensure success // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 200:To ensure success - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. m_loggerPopups.Initialize(f_pLoggerCfg) returned: %d.", - l_eStatus); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher( f_hApp, ERROR_EVENT_STORAGE_QUEUE_NAME, l_storageThreadCallbacks, _countof(l_storageThreadCallbacks)))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 4:NSFW - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. FrameworkunifiedAttachCallbacksToDispatcher(ERROR_EVENT_STORAGE_QUEUE_NAME) returned: %d.", - l_eStatus); - // LCOV_EXCL_STOP - } else if (eFrameworkunifiedStatusOK != (l_eStatus = m_loggerCanEvent.Initialize(f_pLoggerCfg))) { // LCOV_EXCL_BR_LINE 200:To ensure success // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 200:To ensure success - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. m_loggerCanEvent.Initialize() returned: %d.", l_eStatus); - // LCOV_EXCL_STOP - } else { - m_hApp = f_hApp; - m_pLoggerCfg = f_pLoggerCfg; - m_pReaderWriterControl = f_pReaderWriterControl; - l_eStatus = m_loggerUtil.Initialize(m_pLoggerCfg); // LCOV_EXCL_BR_LINE 11:Unexpected branch - LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 5:macro - "CLoggerUtil::m_loggerUtil.Initialize(m_pLoggerCfg)"); - - l_pTimer = &m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_LOGGING_START_RSPN]; - l_pTimer->Initialize( - f_hApp, SS_LOGGER_ERROR_EVENT_TIMER_ID_LOGGING_START_RSPN, - boost::bind(&CErrorEvent::OnLogStartResponseTimeout, this, _1)); // LCOV_EXCL_BR_LINE 11:Unexpected branch - - l_pTimer = &m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_ARTIFACT_RSPN]; - l_pTimer->Initialize( - f_hApp, SS_LOGGER_ERROR_EVENT_TIMER_ID_ARTIFACT_RESPONSE, - boost::bind(&CErrorEvent::OnArtifactResponseTimeout, this, _1)); // LCOV_EXCL_BR_LINE 11:Unexpected branch - m_ServiceName = ""; - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : RegisterSessionErrorEvent -// brief : Register session event. This function is called within the -// context of the System Manager session acknowledgment handler. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::RegisterSessionErrorEvent(HANDLE f_hSession) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - l_eStatus = FrameworkunifiedRegisterEvent(f_hSession, SS_SM_EVENT_ERROR_TO_SSL); - LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedRegisterEvent(SS_SM_EVENT_ERROR_TO_SSL)"); // LCOV_EXCL_BR_LINE 5:macro - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnOpenSession -// brief : Called when a requester opens a session with SS_Logger -// service. This function attaches error event callbacks -// to the dispatcher with the source set to the requester. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnOpenSession(HANDLE f_hApp, PCSTR f_pRequesterName, - HANDLE f_hSession) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(f_hApp, f_pRequesterName, - &m_requesterCallbacksVec[0], - static_cast<UI_32>(m_requesterCallbacksVec.size()), - f_hSession); - - LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedAttachCallbacksToDispatcher(f_hSession)"); // LCOV_EXCL_BR_LINE 5:macro - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnOpenSession -// brief : Called when a requester opens a session with SS_Logger -// service. This function attaches error event callbacks -// to the dispatcher with the source set to the requester. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnCloseSession(HANDLE f_hApp, PCSTR f_pRequesterName, - HANDLE f_hSession) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - UI_32 l_cmdIdArr[m_requesterCallbacksVec.size()]; // NOLINT (runtime/arrays) - - for (UI_32 i = 0; i < m_requesterCallbacksVec.size(); i++) { - l_cmdIdArr[i] = m_requesterCallbacksVec[i].iCmd; - } - - l_eStatus = FrameworkunifiedDetachCallbacksFromDispatcher(f_hApp, f_pRequesterName, - l_cmdIdArr, - static_cast<UI_32>(m_requesterCallbacksVec.size()), - f_hSession); - - LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedAttachCallbacksToDispatcher()"); // LCOV_EXCL_BR_LINE 5:macro - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnStartLogging -// brief : Called by SS_Logger and external services to begin logging -// artifact collection. This function sends a logging request -// to System Manager. See SS_SM_EVENT_ERROR_TO_SSL. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnStartLogging(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - SMErrorEventNtfData l_eventErrorNtfData; - - INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 5:macro - - if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg<SMErrorEventNtfData>(f_hApp, l_eventErrorNtfData))) { // LCOV_EXCL_BR_LINE 200:To ensure success // NOLINT[whitespace/line_length] - // when failed to ReadMsg, we can't know event-type for action, so nothing is able to do. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 200:To ensure success - } else { - if (TRUE == this->m_pLoggerCfg->IsLoggingEnabled()) { // LCOV_EXCL_BR_LINE 200:As it is always TRUE - if (TRUE == m_bIsPrevEventCompleted) { - TLoggerErrorEvent l_eventData = l_eventErrorNtfData; - - if (IsNeedVerify(l_eventData.EventType)) { - // if need output log to external storage, check whether device is authenticated or not. - VerifyExtStorage(l_eventData); - } - - uint8_t status; - Clock_getSystemTimeY2K38(&m_time, &status); - m_currentEventTriggerNumber = m_pLoggerCfg->GetUserInvokedCounter(); - l_eStatus = m_loggerUtil.checkDestinationAvailable(l_eventData); - if (eFrameworkunifiedStatusOK == l_eStatus) { - m_bIsPrevEventCompleted = false; /* See timer start / timeout handler below. */ - - m_artifactResponseVec.clear(); - - m_errorEventNtfData = l_eventErrorNtfData; /* Overwrite m_eventErrorNtfData when logging complete. */ - m_errorEventNtfData.EventBitMask = m_errorEventCfg - .GetEventsForErrorEvent(l_eventErrorNtfData.EventType); - l_eStatus = SendLogStartRequestToSystemManager( - m_errorEventNtfData.EventType); - LOG_STATUS_IF_ERRORED(l_eStatus, - "SendLogStartRequestToSystemManager()"); - l_eStatus = m_loggerCanEvent.PublishStartEvent(f_hApp, - m_errorEventNtfData); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerCanEvent.PublishStartEvent(f_hApp,m_errorEventNtfData);"); - - bool result = - m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_LOGGING_START_RSPN] - .Start(m_loggingStartRspnToSec, 0, 0, 0); - if (FALSE == result) { // LCOV_EXCL_BR_LINE 200:As it is always TRUE - // LCOV_EXCL_START 200:As it is always TRUE - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. Failed to start timer kSSL_ERROR_EVENT_TIMER_LOGGING_START_RSPN."); - // LCOV_EXCL_STOP - } - } else { - FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, - " Warning. Destination not available. "); - m_errorEventNtfData = l_eventErrorNtfData; /* Overwrite m_eventErrorNtfData when logging complete. */ - m_errorEventNtfData.EventBitMask = m_errorEventCfg - .GetEventsForErrorEvent(l_eventErrorNtfData.EventType); - l_eStatus = OnStorageResponseNotFound(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnStorageResponseNotFound(f_hApp)"); - } - } else { - // Not-Need Resp to SM, because of keep logging sequance. - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. Logging already in progress. Event dropped."); - } - } else { - // LCOV_EXCL_START 200:As it is always TRUE - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - if (l_eventErrorNtfData.isNeedReboot == TRUE) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "System will reboot soon, so stop logging function."); - StopLoggingFunction(f_hApp); - } - FRAMEWORKUNIFIEDLOG( - ZONE_INFO, - __FUNCTION__, - "Logging is disabled! Dropping Event. Sending Complete to SS_SystemManager"); - l_eStatus = SendLogCompleteRequestToSystemManager(eFrameworkunifiedStatusFail); - LOG_STATUS_IF_ERRORED(l_eStatus, - "SendLogCompleteRequestToSystemManager()"); - // LCOV_EXCL_STOP - } - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnLogStartResponse -// brief : Called by System Manager after the acknowledgment of the -// logging session start request. This function starts the -// artifact collection process. See -// SS_SM_ERROR_EVENT_LOGGING_START_RSPN. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnLogStartResponse(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_LOGGING_START_RSPN].Stop(); - m_errorEventCfg.GetArtifactRequestVec(m_errorEventNtfData.EventType, - m_artifactRequestVec); - - l_eStatus = RequestNextArtifact(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "RequestNextArtifact()"); - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnLogStartResponseTimeout -// brief : Called when / if SM fails to respond to a logging start -// request and the logging star response timer expires. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnLogStartResponseTimeout(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. SM failed to respond to a logging start request in the required amount of time."); - - m_bIsPrevEventCompleted = TRUE; - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : RequestNextArtifact -// brief : This function requests the next artifact from the service -// that owns the artifact. If no artifacts remain, this -// function performs initiates artifact post processing. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::RequestNextArtifact(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - UI_32 l_timeoutSec; - UI_32 l_timeoutMs; - - if (0 != m_artifactRequestVec.size()) { - TLoggingArtifact &l_nextArtifact = m_artifactRequestVec.back(); - l_eStatus = m_loggerPopups.ShowStartPopup( - f_hApp, m_errorEventNtfData, &m_artifactRequestVec, - m_loggerUtil.getDestination(m_errorEventNtfData)); - - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerPopups.ShowStartPopup(f_hApp,m_errorEventNtfData,&m_artifactRequestVec )"); - - TEXT(__FUNCTION__, - "Requesting next artifact ID:%d from:%s, with timeout:%d ms.", - l_nextArtifact.ArtifactId, - l_nextArtifact.Information.OwnerServiceName.c_str(), - l_nextArtifact.Information.RequestTimeoutMs); - - l_timeoutSec = l_nextArtifact.Information.RequestTimeoutMs / 1000; - l_timeoutMs = l_nextArtifact.Information.RequestTimeoutMs % 1000; - bool result = - m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_ARTIFACT_RSPN].Start( - l_timeoutSec, l_timeoutMs, 0, 0); - if (FALSE == result) { // LCOV_EXCL_BR_LINE 200:As it is always TRUE - // LCOV_EXCL_START 200:As it is always TRUE - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "Failed to start timer kSSL_ERROR_EVENT_TIMER_ARTIFACT_RSPN."); - // LCOV_EXCL_STOP - } - switch (l_nextArtifact.Information.Cb.Type) { - case eCbTypePath: { - l_eStatus = CheckPathForArtifact(f_hApp, l_nextArtifact); - } - break; - - case eCbTypeFunction: { - if (l_nextArtifact.Information.Cb.Function == NULL) { // LCOV_EXCL_BR_LINE 200:As it is not always NULL - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - l_eStatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 200:As it is not always NULL - } else { - l_eStatus = l_nextArtifact.Information.Cb.Function(f_hApp, - l_nextArtifact); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "l_nextArtifact.Information.Cb.Function(f_hApp, l_nextArtifact)"); - } - } - break; - - case eCbTypeInvalid: - default: - { - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. Unknown artifact or artifact owner for artifact ID:" - " %d. Invalid logging artifact configuration likely.", - l_nextArtifact.ArtifactId); - } - break; - } - } else { - if ((m_errorEventNtfData.EventType == eErrorEventTypeUserInvokedClearLogs) - || (m_errorEventNtfData.EventType - == eErrorEventTypeUserInvokedCollectNaviLog)) { - l_eStatus = this->OnStorageResponseOk(f_hApp); - return (l_eStatus); - } - uint8_t status; - Clock_getSystemTimeY2K38(&m_time, &status); - FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, - " Info. All logging error event artifacts have been collected."); - l_eStatus = m_loggerUtil.checkDestinationAvailable(m_errorEventNtfData); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerUtil.checkDestinationAvailable(m_errorEventNtfData)"); - if (eFrameworkunifiedStatusOK == l_eStatus) { - /* Check one last time after all logs have been collected */ - /* if we should show popup for archiving and writing to USB */ - l_eStatus = m_loggerPopups.ShowStartPopup( - f_hApp, m_errorEventNtfData, &m_artifactRequestVec, - m_loggerUtil.getDestination(m_errorEventNtfData)); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerPopups.ShowStartPopup(f_hApp,m_errorEventNtfData,&m_artifactRequestVec )"); - - l_eStatus = m_loggerUtil.getFilePathAndName(f_hApp, m_errorEventNtfData, - m_time, m_archiveDestination); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerUtil.getFilePathAndName()"); - - std::string destination_path = m_loggerUtil.getDestination( - m_errorEventNtfData); - if (destination_path.compare(m_pLoggerCfg->m_emmcOutputPath) == 0) { - if (eFrameworkunifiedStatusOK - != m_loggerUtil.deleteOldEmmcLog(m_archiveDestination, - m_errorEventNtfData.EventType)) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. m_loggerUtil.deleteOldEmmcLog()"); - } - } - - l_eStatus = this->m_loggerStorage.Start(m_archiveDestination, - this->m_artifactResponseVec, - m_time); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerStorage.Start()"); - if (l_eStatus != eFrameworkunifiedStatusOK) { - l_eStatus = this->OnStorageResponseWriteFailed(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, - "this->OnStorageResponseWriteFailed(f_hApp)"); - } - } else { - l_eStatus = this->OnStorageResponseNotFound(f_hApp); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "this->OnStorageResponseNotFound(f_hApp)"); - } - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnArtifactResponse -// brief : This function is called when an artifact has been made ready -// by the owning service. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnArtifactResponse(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - ARTIFACT_RESPONSE l_artifactResponse; - - if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg<ARTIFACT_RESPONSE>(f_hApp, l_artifactResponse))) { // LCOV_EXCL_BR_LINE 200:To ensure success // NOLINT[whitespace/line_length] - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 200:To ensure success - } else { - m_errorEventTimers[kSSL_ERROR_EVENT_TIMER_ARTIFACT_RSPN].Stop(); - - // Prevent processing of artifacts that arrive after the error event logging session has completed. - if (m_artifactRequestVec.size() > 0) { - TEXT(__FUNCTION__, "Artifact ID:%d received.", - l_artifactResponse.ArtifactId); - - TLoggingArtifact &l_artifactCurr = m_artifactRequestVec.back(); - if (l_artifactCurr.ArtifactId != l_artifactResponse.ArtifactId) { - TEXT( - __FUNCTION__, - "Failure collecting current artifact. Expected artifact ID:%d, received artifact ID:%d." - " Ignoring received artifact.", - l_artifactCurr.ArtifactId, l_artifactResponse.ArtifactId); - } else { - TLoggingArtifactResponse l_response; - l_response.ArtifactId = l_artifactResponse.ArtifactId; - l_response.Filepath = l_artifactResponse.FilePathAndName; - l_response.Remove = l_artifactCurr.Information.Remove; - m_artifactResponseVec.push_back(l_response); - m_artifactRequestVec.pop_back(); // Remove received artifact from request vector. - l_eStatus = RequestNextArtifact(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "RequestNextArtifact()"); - } - } else { - FRAMEWORKUNIFIEDLOG( - ZONE_ERR, - __FUNCTION__, - " Error. Received spurious artifact ID: %d. No error event logging session active.", - l_artifactResponse.ArtifactId); // LCOV_EXCL_BR_LINE 5:macro - } - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnArtifactResponseTimeout -// brief : This function is called when a requested artifact response -// fails to arrive in the required amount of time. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnArtifactResponseTimeout(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - if (m_artifactRequestVec.size() > 0) { // LCOV_EXCL_BR_LINE 200:As it cannot always be 0 - TLoggingArtifact &l_artifactCurr = m_artifactRequestVec.back(); - - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. Artifact response timer expired for artifact ID: %d.", - l_artifactCurr.ArtifactId); - - // Remove artifact from request vector. - m_artifactRequestVec.pop_back(); - - RequestNextArtifact(f_hApp); - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnArtifactRequest -// brief : This function services an artifact request generated by -// the error event sub system. The requested artifact will -// be one of the artifacts owned by SSL. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnArtifactRequest(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - EArtifactId l_requestedArtifactId; - - if (eFrameworkunifiedStatusOK - != (l_eStatus = ReadMsg<EArtifactId>(f_hApp, l_requestedArtifactId))) { - LOG_ERROR("ReadMsg()"); - } else { - switch (l_requestedArtifactId) { - case eArtifactIdInterfaceunifiedDebugLog: - l_eStatus = OnObtainLoggerserviceLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainLoggerserviceLogRequest()"); - break; - - case eArtifactIdTransmitLog: - l_eStatus = OnObtainTransmitLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainTransmitLogRequest()"); - break; - - case eArtifactIdPerformanceLog: - l_eStatus = OnObtainPerformanceLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainPerformanceLogRequest()"); - break; - - case eArtifactIdScreenShot: - l_eStatus = OnObtainScreenShotRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainScreenShotRequest()"); - break; - - case eArtifactIdKernelLog: - l_eStatus = OnObtainKernelLogInfoRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainKernelLogInfoRequest()"); - break; - - case eArtifactIdDRInitialLog: - l_eStatus = OnObtainDRInitialLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainDRInitialLogRequest()"); - break; - - case eArtifactIdDRLocationLog: - l_eStatus = OnObtainDRLocationLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnObtainDRLocationLogRequest()"); - break; - - case eArtifactIdClearAllLog: - l_eStatus = OnClearAllLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnClearAllLogRequest()"); - break; - - case eArtifactIdNaviLog: - l_eStatus = OnNaviLogRequest(f_hApp); - LOG_STATUS_IF_ERRORED(l_eStatus, "OnNaviLogRequest()"); - break; - - default: - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. Unsupported logging artifact requested: %d.", - l_requestedArtifactId); - break; - } - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnStorageResponseOk -// brief : This function services response from the storage thread. It -// is called when the logs have been stored successfully. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnStorageResponseOk(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - l_eStatus = this->m_loggerPopups.ShowEndPopup(f_hApp, m_errorEventNtfData, - m_archiveDestination); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "this->m_loggerPopups.ShowEndPopup(f_hApp,m_errorEventNtfData,m_archiveDestination)"); - - if (m_errorEventNtfData.EventType == eErrorEventTypeDiagEvent) { - l_eStatus = sendDiagEventResponse(); - LOG_STATUS_IF_ERRORED(l_eStatus, "sendDiagEventResponse()"); - } - if (m_errorEventNtfData.isNeedReboot == TRUE) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "System will reboot soon, so stop logging function."); - StopLoggingFunction(f_hApp); - } - m_bIsPrevEventCompleted = true; - l_eStatus = SendLogCompleteRequestToSystemManager(eFrameworkunifiedStatusOK); - - l_eStatus = m_loggerCanEvent.PublishEndEvent(f_hApp, m_errorEventNtfData, - m_currentEventTriggerNumber, - m_time); - LOG_STATUS_IF_ERRORED(l_eStatus, "m_loggerCanEvent.PublishEndEvent();"); - LOG_STATUS_IF_ERRORED(l_eStatus, "SendLogCompleteRequestToSystemManager()"); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnStorageResponseWriteFailed -// brief : This function services response from the storage thread. It -// is called when the logs failed to be written to the target -// destination. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnStorageResponseWriteFailed(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - l_eStatus = m_loggerPopups.ShowErrorPopup(f_hApp, m_errorEventNtfData, - (UI_16) eWriteToDeviceFailed); - LOG_STATUS_IF_ERRORED( - l_eStatus, "m_loggerPopups.ShowErrorPopup(f_hApp, eWriteToDeviceFailed)"); - - if (m_errorEventNtfData.EventType == eErrorEventTypeDiagEvent) { - sendDiagEventErrorResponse(eDEVICE_WRITE_ERROR); - } - if (m_errorEventNtfData.isNeedReboot == TRUE) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "System will reboot soon, so stop logging function."); - StopLoggingFunction(f_hApp); - } - m_bIsPrevEventCompleted = true; - l_eStatus = SendLogCompleteRequestToSystemManager(eFrameworkunifiedStatusFail); - - l_eStatus = m_loggerCanEvent.PublishErrorEvent(f_hApp, m_errorEventNtfData, - TRUE, - m_currentEventTriggerNumber, - m_time); - LOG_STATUS_IF_ERRORED(l_eStatus, "m_loggerCanEvent.PublishErrorEvent();"); - - LOG_STATUS_IF_ERRORED(l_eStatus, "SendLogCompleteRequestToSystemManager()"); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnStorageResponseNotFound -// brief : This function services response from the storage thread. It -// is called when the logs failed to be written to the target -// destination because the target was not found -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnStorageResponseNotFound(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - l_eStatus = m_loggerPopups.ShowErrorPopup(f_hApp, m_errorEventNtfData, - (UI_16) eSelectedDeviceNotFound); - LOG_STATUS_IF_ERRORED( - l_eStatus, - "m_loggerPopups.ShowErrorPopup(f_hApp, eSelectedDeviceNotFound)"); - - if (m_errorEventNtfData.EventType == eErrorEventTypeDiagEvent) { - l_eStatus = sendDiagEventErrorResponse(eDEVICE_NOT_AVAILABLE); - LOG_STATUS_IF_ERRORED(l_eStatus, "sendDiagEventErrorResponse(eDEVICE_NOT_AVAILABLE)"); - } - if (m_errorEventNtfData.isNeedReboot == TRUE) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "System will reboot soon, so stop logging function."); - StopLoggingFunction(f_hApp); - } - m_bIsPrevEventCompleted = true; - l_eStatus = SendLogCompleteRequestToSystemManager(eFrameworkunifiedStatusFail); - - l_eStatus = m_loggerCanEvent.PublishErrorEvent(f_hApp, m_errorEventNtfData, - TRUE, - m_currentEventTriggerNumber, - m_time); - LOG_STATUS_IF_ERRORED(l_eStatus, "m_loggerCanEvent.PublishErrorEvent();"); - - LOG_STATUS_IF_ERRORED(l_eStatus, "SendLogCompleteRequestToSystemManager()"); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -/////////////////////////////////////////////////////////////////////////// -// Function : OnStorageResponseNoWritten -// brief : This function services response from the storage thread. It -// is called when no logs where found. -/////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus CErrorEvent::OnStorageResponseNoWritten(HANDLE f_hApp) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - l_eStatus = m_loggerPopups.ShowErrorPopup(f_hApp, m_errorEventNtfData, - (UI_16) eNoLogToStore); - LOG_STATUS_IF_ERRORED(l_eStatus, - "m_loggerPopups.ShowErrorPopup(f_hApp, eNoLogToStore)"); - - if (m_errorEventNtfData.EventType == eErrorEventTypeDiagEvent) { - l_eStatus = sendDiagEventErrorResponse(eNO_ERROR_INFO); - LOG_STATUS_IF_ERRORED(l_eStatus, "sendDiagEventErrorResponse(eNO_ERROR_INFO)"); - } - if (m_errorEventNtfData.isNeedReboot == TRUE) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "System will reboot soon, so stop logging function."); - StopLoggingFunction(f_hApp); - } - m_bIsPrevEventCompleted = true; - l_eStatus = SendLogCompleteRequestToSystemManager(eFrameworkunifiedStatusOK); - - l_eStatus = m_loggerCanEvent.PublishErrorEvent(f_hApp, m_errorEventNtfData, - TRUE, - m_currentEventTriggerNumber, - m_time); - LOG_STATUS_IF_ERRORED(l_eStatus, "m_loggerCanEvent.PublishErrorEvent();"); - - LOG_STATUS_IF_ERRORED(l_eStatus, "SendLogCompleteRequestToSystemManager()"); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -EFrameworkunifiedStatus CErrorEvent::sendDiagEventErrorResponse(EELL_ErrorCode f_errCode) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - if (this->m_ServiceName.length() > 0) { - l_eStatus = sendDiagEventErrorResponse(f_errCode, this->m_ServiceName); - this->m_ServiceName = ""; - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -EFrameworkunifiedStatus CErrorEvent::sendDiagEventErrorResponse(EELL_ErrorCode f_errCode, - std::string f_destName) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendMsg(m_diagsessionhandle, SS_LOGGERCOPYEMERGENCYLOGS_ERROR_RESP, sizeof(EELL_ErrorCode), &f_errCode))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT[whitespace/line_length] - // LCOV_EXCL_START 4: NSFW error case. - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "SS_LOGGERCOPYEMERGENCYLOGS_ERROR_RESP Msg send failed = %x", - l_eStatus); - // LCOV_EXCL_STOP - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -EFrameworkunifiedStatus CErrorEvent::sendDiagEventResponse(void) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - - if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendMsg(m_diagsessionhandle, SS_LOGGERCOPYEMERGENCYLOGS_SUCCESS_RESP, 0, NULL))) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "SS_LOGGERCOPYEMERGENCYLOGS_SUCCESS_RESP Msg send failed = %x", - l_eStatus); - } - - m_ServiceName = ""; - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -EFrameworkunifiedStatus CErrorEvent::SetDiagEventSourceName(std::string f_serviceName) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail; - if ((f_serviceName.length() > 0) - && (this->m_ServiceName.length() == 0)) { - this->m_ServiceName = f_serviceName; - l_eStatus = eFrameworkunifiedStatusOK; - } else { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error. f_serviceName(%s), m_serviceName(%s)", - f_serviceName.c_str(), m_ServiceName.c_str()); - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -void CErrorEvent::SetDiagSessionHandle(HANDLE f_sessionhandle) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - - m_diagsessionhandle = f_sessionhandle; - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); -} - -void CErrorEvent::SetMileage(UI_32 f_mileage) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - this->m_loggerUtil.SetMilage(f_mileage); - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); -} - -// LCOV_EXCL_START 200: -EFrameworkunifiedStatus CErrorEvent::SaveNaviLog(EPWR_SHUTDOWN_TRIGGER_TYPE errType) { - AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; - UI_32 l_logMaxNum = 0; - std::string l_Filename = ""; - - uint32_t l_time; - uint8_t status; - Clock_getSystemTimeY2K38(&l_time, &status); - l_eStatus = m_loggerUtil.getEmmcNaviLogParams(l_time, errType, l_Filename, - l_logMaxNum); - - if (eFrameworkunifiedStatusOK != l_eStatus) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - " Error: getEmmcNaviLogParams NaviLog update failed %d", l_eStatus); - } else { - if (l_logMaxNum == 0) { - /*OutputNaviLogNmlMax or OutputNaviLogErrMax = 0. */ - FRAMEWORKUNIFIEDLOG( - ZONE_WARN, - __FUNCTION__, - " Warning: Not update NaviLog. OutputNaviLogNmlMax or OutputNaviLogErrMax = 0"); - } else { - FILE *fp; - void *p; - p = EL_mem_exram_mmap_simple(EL_MEM_ID_NAVI_LOG, PROT_READ | PROT_WRITE, - MAP_SHARED, - EL_MEM_CACHE_INVALID); - if (p == MAP_FAILED) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, - "Error : EL_mem_exram_mmap_simple MAP_FAILD"); - l_eStatus = eFrameworkunifiedStatusFail; - } else { - fp = fopen(l_Filename.c_str(), "wb"); - if (fp == NULL) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Could not open file %s", - l_Filename.c_str()); - l_eStatus = eFrameworkunifiedStatusAccessError; - } else { - fwrite(p, sizeof(unsigned char), EL_mem_getLength(EL_MEM_ID_NAVI_LOG), - fp); - fclose(fp); - } - if (0 != EL_mem_exram_munmap(p, EL_mem_getLength(EL_MEM_ID_NAVI_LOG))) { - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error : EL_mem_exram_munmap"); - } - } - } - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} -// LCOV_EXCL_STOP - -EFrameworkunifiedStatus CErrorEvent::VerifyExtStorage(TLoggerErrorEvent event) { - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); - EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail; - std::string f_path; - - f_path = m_pLoggerCfg->getUsb0MountPath(); - - if (eFrameworkunifiedStatusOK == l_eStatus) { - l_eStatus = eFrameworkunifiedStatusFail; - - if (eFrameworkunifiedStatusFail == l_eStatus) { - // timeout or error - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error : get secure log failed or timeout"); - } - } else { - // timeout - FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error : ticket verify timeout."); - } - - FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-"); - return (l_eStatus); -} - -bool CErrorEvent::IsNeedVerify(EErrorEventType type) { - bool ret = false; - switch (type) { - case eErrorEventTypeUserInvokedCollectScreenShot: - case eErrorEventTypeUserInvokedCollectAllLogs: - case eErrorEventTypeUserInvokedCollectInterfaceunifiedLogs: - case eErrorEventTypeInterfaceunifiedEmmcLogs: - case eErrorEventTypeEelExport: - case eErrorEventTypeDiagEvent: - case eErrorEventTypeCanEvent: - ret = true; - break; - default: - break; - } - return ret; -} |