From b818c584c39f6aad31f4ccaef4b98e8a46438782 Mon Sep 17 00:00:00 2001 From: heppen Date: Wed, 29 May 2024 10:11:02 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(datacollect):=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=87=87=E9=9B=86=E4=BB=BB=E5=8A=A1=E5=AF=B9=E9=9D=9E?= =?UTF-8?q?=E6=B3=95=E5=80=BC=E5=81=9A=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/inc/pwrerr.h | 1 + pwrapic/src/powerapi.c | 5 ++++- pwrapis/src/taskservice.c | 14 +++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/common/inc/pwrerr.h b/common/inc/pwrerr.h index 984f6ed..aa87ea2 100644 --- a/common/inc/pwrerr.h +++ b/common/inc/pwrerr.h @@ -54,6 +54,7 @@ enum PWR_RtnCode { PWR_ERR_CONTROL_AUTH_REQUESTED, PWR_ERR_CONTROL_AUTH_OWNERED_BY_OTHERS, PWR_ERR_CONTROL_AUTH_NO_PERMISSION, + PWR_ERR_NOT_SUPPORT_TASK_TYPE, PWR_ERR_FILE_ACCESS_FAILED = 500, PWR_ERR_FILE_FPRINT_FAILED, PWR_ERR_FILE_FFLUSH_FAILED, diff --git a/pwrapic/src/powerapi.c b/pwrapic/src/powerapi.c index 1013906..a3dc546 100644 --- a/pwrapic/src/powerapi.c +++ b/pwrapic/src/powerapi.c @@ -161,7 +161,10 @@ int PWR_CreateDcTask(const PWR_COM_BasicDcTaskInfo *basicDcTaskInfo) CHECK_STATUS(STATUS_REGISTERTED); CHECK_NULL_POINTER(basicDcTaskInfo); - if (basicDcTaskInfo->interval < PWR_MIN_DC_INTERVAL || basicDcTaskInfo->interval > PWR_MAX_DC_INTERVAL) { + if (basicDcTaskInfo->interval < PWR_MIN_DC_INTERVAL || + basicDcTaskInfo->interval > PWR_MAX_DC_INTERVAL || + (basicDcTaskInfo->dataType != PWR_COM_DATATYPE_CPU_USAGE && + basicDcTaskInfo->dataType != PWR_COM_DATATYPE_CPU_PERF)) { return PWR_ERR_INVALIDE_PARAM; } diff --git a/pwrapis/src/taskservice.c b/pwrapis/src/taskservice.c index 9b8e253..74c053f 100644 --- a/pwrapis/src/taskservice.c +++ b/pwrapis/src/taskservice.c @@ -316,9 +316,11 @@ static int DeleteTask(PWR_COM_COL_DATATYPE dataType, uint32_t subscriber) { pthread_mutex_lock(&g_taskListMutex); int index = FindCollTaskByType(dataType); - if (index != INVALID_INDEX) { - DeleteSubscriber(index, subscriber); + if (index == INVALID_INDEX) { + pthread_mutex_unlock(&g_taskListMutex); + return PWR_ERR_TASK_NOT_EXISTS; } + DeleteSubscriber(index, subscriber); pthread_mutex_unlock(&g_taskListMutex); Logger(INFO, MD_NM_SVR_TASK, "DeleteTask. sysId:%d dataType:%d taskNum:%d", subscriber, dataType, g_taskNum); return PWR_SUCCESS; @@ -375,7 +377,13 @@ void CreateDataCollTask(PwrMsg *req) if (!req || req->head.dataLen != sizeof(PWR_COM_BasicDcTaskInfo)) { return; } - int rspCode = CreateTask((PWR_COM_BasicDcTaskInfo *)req->data, req->head.sysId); + + PWR_COM_BasicDcTaskInfo *task = (PWR_COM_BasicDcTaskInfo *)req->data; + if (task->dataType != PWR_COM_DATATYPE_CPU_PERF && task->dataType != PWR_COM_DATATYPE_CPU_USAGE) { + Logger(ERROR, MD_NM_SVR_TASK, "Not support data collect task type %d", task->dataType); + return SendRspToClient(req, PWR_ERR_NOT_SUPPORT_TASK_TYPE, NULL, 0); + } + int rspCode = CreateTask(task, req->head.sysId); SendRspToClient(req, rspCode, NULL, 0); } -- Gitee