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 #ifndef DISC_AUDIT_CONVERTER_H
17 #define DISC_AUDIT_CONVERTER_H
18
19 #include "softbus_event_converter.h"
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 #define DISC_AUDIT_ASSIGNER(type, fieldName, field) \
26 static inline bool DiscAuditAssigner##fieldName( \
27 const char *eventName, HiSysEventParamType paramType, SoftbusEventForm *form, HiSysEventParam *param) \
28 { \
29 if (Assigner##type(form->discAuditExtra->field, ¶m) && \
30 CopyString(param->name, eventName, MAX_LENGTH_OF_PARAM_NAME)) { \
31 param->t = paramType; \
32 return true; \
33 } \
34 return false; \
35 }
36
37 DISC_AUDIT_ASSIGNER(String, CallerPkg, callerPkg)
38 DISC_AUDIT_ASSIGNER(Int32, Result, result)
39 DISC_AUDIT_ASSIGNER(Errcode, Errcode, errcode)
40 DISC_AUDIT_ASSIGNER(Int32, AuditType, auditType)
41 DISC_AUDIT_ASSIGNER(Int32, BroadcastType, broadcastType)
42 DISC_AUDIT_ASSIGNER(Int32, BroadcastFreq, broadcastFreq)
43 DISC_AUDIT_ASSIGNER(Int32, AdvCount, advCount)
44 DISC_AUDIT_ASSIGNER(Int32, AdvDuration, advDuration)
45 DISC_AUDIT_ASSIGNER(Int32, ScanInterval, scanInterval)
46 DISC_AUDIT_ASSIGNER(Int32, ScanWindow, scanWindow)
47 DISC_AUDIT_ASSIGNER(Int32, DiscMode, discMode)
48 DISC_AUDIT_ASSIGNER(Int32, MediumType, mediumType)
49 DISC_AUDIT_ASSIGNER(Int32, AdvChannel, advChannel)
50 DISC_AUDIT_ASSIGNER(Int32, ScanType, scanType)
51 DISC_AUDIT_ASSIGNER(Int32, ScanId, scanId)
52 DISC_AUDIT_ASSIGNER(Int32, ScanListenerId, scanListenerId)
53 DISC_AUDIT_ASSIGNER(String, LocalUdid, localUdid)
54 DISC_AUDIT_ASSIGNER(String, LocalDeviceName, localDeviceName)
55 DISC_AUDIT_ASSIGNER(String, LocalDeviceType, localDeviceType)
56 DISC_AUDIT_ASSIGNER(String, LocalAccountHash, localAccountHash)
57 DISC_AUDIT_ASSIGNER(Int32, LocalCapabilityBitmap, localCapabilityBitmap)
58 DISC_AUDIT_ASSIGNER(String, LocalCustData, localCustData)
59 DISC_AUDIT_ASSIGNER(String, LocalIp, localIp)
60 DISC_AUDIT_ASSIGNER(Int32, LocalPort, localPort)
61 DISC_AUDIT_ASSIGNER(String, LocalBrMac, localBrMac)
62 DISC_AUDIT_ASSIGNER(String, LocalBleMac, localBleMac)
63 DISC_AUDIT_ASSIGNER(String, PeerUdid, peerUdid)
64 DISC_AUDIT_ASSIGNER(String, PeerDeviceName, peerDeviceName)
65 DISC_AUDIT_ASSIGNER(String, PeerDeviceType, peerDeviceType)
66 DISC_AUDIT_ASSIGNER(String, PeerAccountHash, peerAccountHash)
67 DISC_AUDIT_ASSIGNER(Int32, PeerCapabilityBitmap, peerCapabilityBitmap)
68 DISC_AUDIT_ASSIGNER(String, PeerCustData, peerCustData)
69 DISC_AUDIT_ASSIGNER(String, PeerIp, peerIp)
70 DISC_AUDIT_ASSIGNER(Int32, PeerPort, peerPort)
71 DISC_AUDIT_ASSIGNER(String, PeerBrMac, peerBrMac)
72 DISC_AUDIT_ASSIGNER(String, PeerBleMac, peerBleMac)
73 DISC_AUDIT_ASSIGNER(String, ErrMsg, errMsg)
74 DISC_AUDIT_ASSIGNER(String, AdditionalInfo, additionalInfo)
75
76 static HiSysEventParamAssigner g_discAuditAssigners[] = {
77 { "HOST_PKG", HISYSEVENT_STRING, DiscAuditAssignerCallerPkg },
78 { "RESULT", HISYSEVENT_INT32, DiscAuditAssignerResult },
79 { "ERROR_CODE", HISYSEVENT_INT32, DiscAuditAssignerErrcode },
80 { "AUDIT_TYPE", HISYSEVENT_INT32, DiscAuditAssignerAuditType },
81 { "BROADCAST_TYPE", HISYSEVENT_INT32, DiscAuditAssignerBroadcastType },
82 { "BROADCAST_FREQ", HISYSEVENT_INT32, DiscAuditAssignerBroadcastFreq },
83 { "ADV_COUNT", HISYSEVENT_INT32, DiscAuditAssignerAdvCount },
84 { "ADV_DURATION", HISYSEVENT_INT32, DiscAuditAssignerAdvDuration },
85 { "SCAN_INTERVAL", HISYSEVENT_INT32, DiscAuditAssignerScanInterval },
86 { "SCAN_WINDOW", HISYSEVENT_INT32, DiscAuditAssignerScanWindow },
87 { "DISC_MODE", HISYSEVENT_INT32, DiscAuditAssignerDiscMode },
88 { "MEDIUM_TYPE", HISYSEVENT_INT32, DiscAuditAssignerMediumType },
89 { "ADV_CHANNEL", HISYSEVENT_INT32, DiscAuditAssignerAdvChannel },
90 { "SCAN_TYPE", HISYSEVENT_INT32, DiscAuditAssignerScanType },
91 { "SCAN_ID", HISYSEVENT_INT32, DiscAuditAssignerScanId },
92 { "SCAN_LISTENER_ID", HISYSEVENT_INT32, DiscAuditAssignerScanListenerId },
93 { "LOCAL_UDID", HISYSEVENT_STRING, DiscAuditAssignerLocalUdid },
94 { "LOCAL_DEV_NAME", HISYSEVENT_STRING, DiscAuditAssignerLocalDeviceName },
95 { "LOCAL_DEV_TYPE", HISYSEVENT_STRING, DiscAuditAssignerLocalDeviceType },
96 { "LOCAL_ACCOUNT_HASH", HISYSEVENT_STRING, DiscAuditAssignerLocalAccountHash },
97 { "LOCAL_CAPABILITY_BITMAP", HISYSEVENT_INT32, DiscAuditAssignerLocalCapabilityBitmap },
98 { "LOCAL_CUST_DATA", HISYSEVENT_STRING, DiscAuditAssignerLocalCustData },
99 { "LOCAL_IP", HISYSEVENT_STRING, DiscAuditAssignerLocalIp },
100 { "LOCAL_PORT", HISYSEVENT_INT32, DiscAuditAssignerLocalPort },
101 { "LOCAL_BR_MAC", HISYSEVENT_STRING, DiscAuditAssignerLocalBrMac },
102 { "LOCAL_BLE_MAC", HISYSEVENT_STRING, DiscAuditAssignerLocalBleMac },
103 { "PEER_UDID", HISYSEVENT_STRING, DiscAuditAssignerPeerUdid },
104 { "PEER_DEV_NAME", HISYSEVENT_STRING, DiscAuditAssignerPeerDeviceName },
105 { "PEER_DEV_TYPE", HISYSEVENT_STRING, DiscAuditAssignerPeerDeviceType },
106 { "PEER_ACCOUNT_HASH", HISYSEVENT_STRING, DiscAuditAssignerPeerAccountHash },
107 { "PEER_CAPABILITY_BITMAP", HISYSEVENT_INT32, DiscAuditAssignerPeerCapabilityBitmap },
108 { "PEER_CUST_DATA", HISYSEVENT_STRING, DiscAuditAssignerPeerCustData },
109 { "PEER_IP", HISYSEVENT_STRING, DiscAuditAssignerPeerIp },
110 { "PEER_PORT", HISYSEVENT_INT32, DiscAuditAssignerPeerPort },
111 { "PEER_BR_MAC", HISYSEVENT_STRING, DiscAuditAssignerPeerBrMac },
112 { "PEER_BLE_MAC", HISYSEVENT_STRING, DiscAuditAssignerPeerBleMac },
113 { "ERR_MSG", HISYSEVENT_STRING, DiscAuditAssignerErrMsg },
114 { "ADDITIONAL_INFO", HISYSEVENT_STRING, DiscAuditAssignerAdditionalInfo },
115 // Modification Note: remember updating DISC_AUDIT_ASSIGNER_SIZE
116 };
117
118 #define DISC_AUDIT_ASSIGNER_SIZE 38 // Array size of g_discAuditAssigners
119
120 static const size_t DISC_AUDIT_ASSIGNER_COUNT = sizeof(g_discAuditAssigners) / sizeof(HiSysEventParamAssigner);
121
ConvertDiscAuditForm2Param(HiSysEventParam params[],SoftbusEventForm * form)122 static inline size_t ConvertDiscAuditForm2Param(HiSysEventParam params[], SoftbusEventForm *form)
123 {
124 size_t validSize = 0;
125 if (form == NULL || form->discExtra == NULL) {
126 return validSize;
127 }
128 for (size_t i = 0; i < DISC_AUDIT_ASSIGNER_COUNT; ++i) {
129 HiSysEventParamAssigner assigner = g_discAuditAssigners[i];
130 if (assigner.Assign(assigner.name, assigner.type, form, ¶ms[validSize])) {
131 ++validSize;
132 }
133 }
134 return validSize;
135 }
136
137 #ifdef __cplusplus
138 }
139 #endif /* __cplusplus */
140 #endif // DISC_AUDIT_CONVERTER_H
141