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 LNN_AUDIT_CONVERTER_H
17 #define LNN_AUDIT_CONVERTER_H
18
19 #include "softbus_event_converter.h"
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 #define LNN_AUDIT_ASSIGNER(type, fieldName, field) \
26 static inline bool LnnAuditAssigner##fieldName( \
27 const char *eventName, HiSysEventParamType paramType, SoftbusEventForm *form, HiSysEventParam *param) \
28 { \
29 if (Assigner##type(form->lnnAuditExtra->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 LNN_AUDIT_ASSIGNER(Int32, Result, result)
38 LNN_AUDIT_ASSIGNER(Errcode, ErrCode, errCode)
39 LNN_AUDIT_ASSIGNER(Int32, AuditType, auditType)
40 LNN_AUDIT_ASSIGNER(Uint64, ConnectionId, connId)
41 LNN_AUDIT_ASSIGNER(Int32, AuthLinkType, authLinkType)
42 LNN_AUDIT_ASSIGNER(Uint32, AuthRequestId, authRequestId)
43 LNN_AUDIT_ASSIGNER(Int32, OnlineNum, onlineNum)
44 LNN_AUDIT_ASSIGNER(String, HostPkg, hostPkg)
45 LNN_AUDIT_ASSIGNER(String, LocalIp, localIp)
46 LNN_AUDIT_ASSIGNER(String, LocalBrMac, localBrMac)
47 LNN_AUDIT_ASSIGNER(String, LocalBleMac, localBleMac)
48 LNN_AUDIT_ASSIGNER(String, LocalUdid, localUdid)
49 LNN_AUDIT_ASSIGNER(String, LocalNetworkId, localNetworkId)
50 LNN_AUDIT_ASSIGNER(String, LocalDevName, localDevName)
51 LNN_AUDIT_ASSIGNER(String, PeerIp, peerIp)
52 LNN_AUDIT_ASSIGNER(String, PeerUdid, peerUdid)
53 LNN_AUDIT_ASSIGNER(String, PeerBrMac, peerBrMac)
54 LNN_AUDIT_ASSIGNER(String, PeerBleMac, peerBleMac)
55 LNN_AUDIT_ASSIGNER(String, PeerNetworkId, peerNetworkId)
56 LNN_AUDIT_ASSIGNER(String, PeerDevName, peerDevName)
57 LNN_AUDIT_ASSIGNER(Int32, LocalAuthPort, localAuthPort)
58 LNN_AUDIT_ASSIGNER(Int32, LocalProxyPort, localProxyPort)
59 LNN_AUDIT_ASSIGNER(Int32, LocalSessionPort, localSessionPort)
60 LNN_AUDIT_ASSIGNER(Int32, LocalDevType, localDevType)
61 LNN_AUDIT_ASSIGNER(Int32, PeerAuthPort, peerAuthPort)
62 LNN_AUDIT_ASSIGNER(Int32, PeerProxyPort, peerProxyPort)
63 LNN_AUDIT_ASSIGNER(Int32, PeerSessionPort, peerSessionPort)
64 LNN_AUDIT_ASSIGNER(Int32, PeerDevType, peerDevType)
65 LNN_AUDIT_ASSIGNER(Int32, AttackTimes, attackTimes)
66 LNN_AUDIT_ASSIGNER(Int32, BeAttackedPort, beAttackedPort)
67 LNN_AUDIT_ASSIGNER(Int32, HbEventType, hbEventType)
68
69 #define LNN_AUDIT_ASSIGNER_SIZE 31 // Size of g_lnnAuditAssigners
70 static const HiSysEventParamAssigner g_lnnAuditAssigners[] = {
71 { "RESULT", HISYSEVENT_INT32, LnnAuditAssignerResult },
72 { "ERROR_CODE", HISYSEVENT_INT32, LnnAuditAssignerErrCode },
73 { "AUDIT_TYPE", HISYSEVENT_INT32, LnnAuditAssignerAuditType },
74 { "CONN_ID", HISYSEVENT_UINT64, LnnAuditAssignerConnectionId },
75 { "AUTH_LINK_TYPE", HISYSEVENT_INT32, LnnAuditAssignerAuthLinkType },
76 { "AUTH_REQUEST_ID", HISYSEVENT_UINT32, LnnAuditAssignerAuthRequestId },
77 { "ONLINE_NUM", HISYSEVENT_INT32, LnnAuditAssignerOnlineNum },
78 { "HOST_PKG", HISYSEVENT_STRING, LnnAuditAssignerHostPkg },
79 { "LOCAL_IP", HISYSEVENT_STRING, LnnAuditAssignerLocalIp },
80 { "LOCAL_BR_MAC", HISYSEVENT_STRING, LnnAuditAssignerLocalBrMac },
81 { "LOCAL_BLE_MAC", HISYSEVENT_STRING, LnnAuditAssignerLocalBleMac },
82 { "LOCAL_UDID", HISYSEVENT_STRING, LnnAuditAssignerLocalUdid },
83 { "LOCAL_NETWORK_ID", HISYSEVENT_STRING, LnnAuditAssignerLocalNetworkId },
84 { "LOCAL_DEV_NAME", HISYSEVENT_STRING, LnnAuditAssignerLocalDevName },
85 { "PEER_IP", HISYSEVENT_STRING, LnnAuditAssignerPeerIp },
86 { "PEER_BR_MAC", HISYSEVENT_STRING, LnnAuditAssignerPeerBrMac },
87 { "PEER_BLE_MAC", HISYSEVENT_STRING, LnnAuditAssignerPeerBleMac },
88 { "PEER_UDID", HISYSEVENT_STRING, LnnAuditAssignerPeerUdid },
89 { "PEER_NETWORK_ID", HISYSEVENT_STRING, LnnAuditAssignerPeerNetworkId },
90 { "PEER_DEV_NAME", HISYSEVENT_STRING, LnnAuditAssignerPeerDevName },
91 { "LOCAL_AUTH_PORT", HISYSEVENT_INT32, LnnAuditAssignerLocalAuthPort },
92 { "LOCAL_PROXY_PORT", HISYSEVENT_INT32, LnnAuditAssignerLocalProxyPort },
93 { "LOCAL_SESSION_PORT", HISYSEVENT_INT32, LnnAuditAssignerLocalSessionPort },
94 { "LOCAL_DEV_TYPE", HISYSEVENT_INT32, LnnAuditAssignerLocalDevType },
95 { "PEER_AUTH_PORT", HISYSEVENT_INT32, LnnAuditAssignerPeerAuthPort },
96 { "PEER_PROXY_PORT", HISYSEVENT_INT32, LnnAuditAssignerPeerProxyPort },
97 { "PEER_SESSION_PORT", HISYSEVENT_INT32, LnnAuditAssignerPeerSessionPort },
98 { "PEER_DEV_TYPE", HISYSEVENT_INT32, LnnAuditAssignerPeerDevType },
99 { "ATTACK_TIMES", HISYSEVENT_INT32, LnnAuditAssignerAttackTimes },
100 { "BE_ATTACKED_PORT", HISYSEVENT_INT32, LnnAuditAssignerBeAttackedPort },
101 { "HEARTBEAT_EVENT_TYPE", HISYSEVENT_INT32, LnnAuditAssignerHbEventType },
102 // Modification Note: remember updating LNN_AUDIT_ASSIGNER_SIZE
103 };
104
ConvertLnnAuditForm2Param(HiSysEventParam params[],SoftbusEventForm * form)105 static inline size_t ConvertLnnAuditForm2Param(HiSysEventParam params[], SoftbusEventForm *form)
106 {
107 size_t validSize = 0;
108 if (form == NULL || form->lnnExtra == NULL) {
109 return validSize;
110 }
111 for (size_t i = 0; i < sizeof(g_lnnAuditAssigners) / sizeof(g_lnnAuditAssigners[0]); ++i) {
112 HiSysEventParamAssigner assigner = g_lnnAuditAssigners[i];
113 if (assigner.Assign(assigner.name, assigner.type, form, ¶ms[validSize])) {
114 ++validSize;
115 }
116 }
117 return validSize;
118 }
119 #ifdef __cplusplus
120 }
121 #endif /* __cplusplus */
122 #endif // LNN_AUDIT_CONVERTER_H
123