1 /*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "hisysevent_adapter.h"
17 #include "common_defs.h"
18
19 #include "hisysevent.h"
20
21 #define STR_CALL_EVENT "CALL_EVENT"
22 #define STR_FAULT_EVENT "FAULT_EVENT"
23 #define STR_STATISTIC_EVENT "STATISTIC_EVENT"
24 #define STR_OS_ACCOUNT_ID "OS_ACCOUNT_ID"
25 #define STR_FUNC_NAME "FUNC_NAME"
26 #define STR_FUNC "FUNC"
27 #define STR_FAULT_REASON "FAULT_REASON"
28 #define STR_CRED_TYPE "CRED_TYPE"
29 #define STR_GROUP_TYPE "GROUP_TYPE"
30 #define STR_COST_TIME "COST_TIME"
31 #define STR_PROTOCOL_TYPE "PROTOCOL_TYPE"
32 #define STR_APP_ID "APP_ID"
33 #define STR_REQ_ID "REQ_ID"
34 #define STR_CALL_RESULT "CALL_RESULT"
35 #define STR_UNKNOWN "unknown"
36 #define STR_PROCESS_CODE "PROCESS_CODE"
37 #define STR_EXECUTION_TIME "EXECUTION_TIME"
38 #define STR_EXT_INFO "EXT_INFO"
39 #define STR_FAULT_INFO "FAULT_INFO"
40 #define STR_ERROR_CODE "ERROR_CODE"
41 #define STR_PNAME_ID "PNAMEID"
42 #define STR_PVERSION_ID "PVERSIONID"
43 #define STR_DEVAUTH_BEHAVIOR "DEVAUTH_BEHAVIOR"
44 #define STR_ORG_PKG "ORG_PKG"
45 #define STR_BIZ_SCENE "BIZ_SCENE"
46 #define STR_BIZ_STATE "BIZ_STATE"
47 #define STR_BIZ_STAGE "BIZ_STAGE"
48 #define STR_STAGE_RES "STAGE_RES"
49 #define STR_ERROR_CODE "ERROR_CODE"
50 #define STR_TO_CALL_PKG "TO_CALL_PKG"
51 #define STR_HOST_PKG "HOST_PKG"
52 #define STR_LOCAL_UDID "LOCAL_UDID"
53 #define STR_PEER_UDID "PEER_UDID"
54 #define STR_CONCURRENT_ID "CONCURRENT_ID"
55 #define STR_NULL_STRING ""
56
DevAuthReportCallEvent(const DevAuthCallEvent eventData)57 void DevAuthReportCallEvent(const DevAuthCallEvent eventData)
58 {
59 HiSysEventWrite(
60 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_AUTH,
61 STR_CALL_EVENT, OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
62 STR_FUNC_NAME, ((eventData.funcName != NULL) ? eventData.funcName : STR_UNKNOWN),
63 STR_APP_ID, ((eventData.appId != NULL) ? eventData.appId : STR_UNKNOWN),
64 STR_OS_ACCOUNT_ID, eventData.osAccountId,
65 STR_CALL_RESULT, eventData.callResult,
66 STR_PROCESS_CODE, eventData.processCode,
67 STR_CRED_TYPE, eventData.credType,
68 STR_GROUP_TYPE, eventData.groupType,
69 STR_EXECUTION_TIME, eventData.executionTime,
70 STR_EXT_INFO, ((eventData.extInfo != NULL) ? eventData.extInfo : STR_UNKNOWN));
71 }
72
DevAuthReportBehaviorEvent(const DevAuthBehaviorEvent * eventData)73 void DevAuthReportBehaviorEvent(const DevAuthBehaviorEvent *eventData)
74 {
75 HiSysEventWrite(
76 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_AUTH,
77 STR_DEVAUTH_BEHAVIOR, OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
78 STR_ORG_PKG, ((eventData->orgPkg != NULL) ? eventData->orgPkg : STR_NULL_STRING),
79 STR_FUNC, ((eventData->funcName != NULL) ? eventData->funcName : STR_NULL_STRING),
80 STR_BIZ_SCENE, eventData->bizScene,
81 STR_BIZ_STATE, eventData->bizState,
82 STR_BIZ_STAGE, eventData->bizStage,
83 STR_STAGE_RES, eventData->stageRes,
84 STR_ERROR_CODE, eventData->errorCode,
85 STR_TO_CALL_PKG, ((eventData->toCallPkg != NULL) ? eventData->toCallPkg : STR_NULL_STRING),
86 STR_HOST_PKG, ((eventData->hostPkg != NULL) ? eventData->hostPkg : STR_NULL_STRING),
87 STR_LOCAL_UDID, ((eventData->localUdid != NULL) ? eventData->localUdid : STR_NULL_STRING),
88 STR_PEER_UDID, ((eventData->peerUdid != NULL) ? eventData->peerUdid : STR_NULL_STRING),
89 STR_CONCURRENT_ID, ((eventData->concurrentId != NULL) ? eventData->concurrentId : STR_NULL_STRING));
90 }
91
BuildBehaviorEventData(DevAuthBehaviorEvent * eventData,const char * funcName,int32_t bizScene,int32_t bizState,int32_t bizStage)92 void BuildBehaviorEventData(DevAuthBehaviorEvent *eventData, const char *funcName, int32_t bizScene, int32_t bizState,
93 int32_t bizStage)
94 {
95 eventData->orgPkg = "deviceauth_service";
96 eventData->funcName = funcName;
97 eventData->bizScene = bizScene;
98 eventData->bizState = bizState;
99 eventData->bizStage = bizStage;
100 eventData->stageRes = STAGE_RES_IDLE;
101 eventData->errorCode = 0;
102 }
103
DevAuthReportFaultEvent(DevAuthFaultEvent eventData)104 void DevAuthReportFaultEvent(DevAuthFaultEvent eventData)
105 {
106 HiSysEventWrite(
107 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_AUTH,
108 STR_FAULT_EVENT, OHOS::HiviewDFX::HiSysEvent::EventType::FAULT,
109 STR_APP_ID, ((eventData.appId != NULL) ? eventData.appId : STR_UNKNOWN),
110 STR_PROCESS_CODE, eventData.processCode,
111 STR_FUNC_NAME, ((eventData.funcName != NULL) ? eventData.funcName : STR_UNKNOWN),
112 STR_REQ_ID, eventData.reqId,
113 STR_ERROR_CODE, eventData.errorCode,
114 STR_FAULT_INFO, ((eventData.faultInfo != NULL) ? eventData.faultInfo : STR_UNKNOWN));
115 }
116
DevAuthReportFaultEventWithErrCode(const char * funcName,const int32_t processCode,const int32_t errorCode)117 void DevAuthReportFaultEventWithErrCode(const char *funcName, const int32_t processCode, const int32_t errorCode)
118 {
119 DevAuthFaultEvent eventData;
120 eventData.appId = DEFAULT_APPID;
121 eventData.processCode = processCode;
122 eventData.funcName = funcName;
123 eventData.reqId = DEFAULT_REQ_ID;
124 eventData.errorCode = errorCode;
125 eventData.faultInfo = DEFAULT_FAULT_INFO;
126 DevAuthReportFaultEvent(eventData);
127 }
128
DevAuthReportUeCallEvent(int32_t osAccountId,int32_t groupType,const char * appId,const char * funcName)129 void DevAuthReportUeCallEvent(int32_t osAccountId, int32_t groupType, const char *appId, const char *funcName)
130 {
131 HiSysEventWrite(
132 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_AUTH_UE,
133 STR_CALL_EVENT, OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
134 STR_APP_ID, ((appId != NULL) ? appId : STR_UNKNOWN),
135 STR_FUNC_NAME, ((funcName != NULL) ? funcName : STR_UNKNOWN),
136 STR_OS_ACCOUNT_ID, osAccountId,
137 STR_GROUP_TYPE, groupType,
138 STR_PNAME_ID, DEFAULT_PNAMEID,
139 STR_PVERSION_ID, DEFAULT_PVERSIONID);
140 }
141
DevAuthReportUeCallEventByParams(int32_t osAccountId,const char * inParams,const char * appId,const char * funcName)142 void DevAuthReportUeCallEventByParams(int32_t osAccountId, const char *inParams, const char *appId,
143 const char *funcName)
144 {
145 int32_t groupType = GROUP_TYPE_INVALID;
146 CJson *params = CreateJsonFromString(inParams);
147 if (params != NULL) {
148 (void)GetIntFromJson(params, FIELD_GROUP_TYPE, &groupType);
149 FreeJson(params);
150 }
151 DEV_AUTH_REPORT_UE_CALL_EVENT(osAccountId, groupType, appId, funcName);
152 }