1 /*
2 * Copyright (c) 2021 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 "bus_center_client_stub.h"
17
18 #include <stdint.h>
19
20 #include "client_bus_center_manager.h"
21 #include "ipc_skeleton.h"
22 #include "softbus_def.h"
23 #include "softbus_errcode.h"
24 #include "softbus_log.h"
25
ClientOnJoinLNNResult(IpcIo * data,IpcIo * reply)26 NO_SANITIZE("cfi") int32_t ClientOnJoinLNNResult(IpcIo *data, IpcIo *reply)
27 {
28 if (data == NULL) {
29 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
30 return SOFTBUS_ERR;
31 }
32
33 uint32_t addrSize;
34 ReadUint32(data, &addrSize);
35 if (addrSize != sizeof(ConnectionAddr)) {
36 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnJoinLNNResult read addrSize:%d failed!", addrSize);
37 return SOFTBUS_ERR;
38 }
39 void *addr = (void *)ReadBuffer(data, addrSize);
40 if (addr == NULL) {
41 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnJoinLNNResult read addr failed!");
42 return SOFTBUS_ERR;
43 }
44 int32_t retCode = 0;
45 ReadInt32(data, &retCode);
46 size_t networkIdLen;
47 const char *networkId = NULL;
48 if (retCode == 0) {
49 networkId = (const char *)ReadString(data, &networkIdLen);
50 if (networkId == NULL) {
51 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnJoinLNNResult read networkId failed!");
52 return SOFTBUS_ERR;
53 }
54 }
55 int32_t retReply = LnnOnJoinResult(addr, networkId, retCode);
56 if (retReply != SOFTBUS_OK) {
57 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnJoinLNNResult LnnOnJoinResult failed!");
58 return SOFTBUS_ERR;
59 }
60 return SOFTBUS_OK;
61 }
62
ClientOnJoinMetaNodeResult(IpcIo * data,IpcIo * reply)63 NO_SANITIZE("cfi") int32_t ClientOnJoinMetaNodeResult(IpcIo *data, IpcIo *reply)
64 {
65 (void)data;
66 (void)reply;
67 return SOFTBUS_OK;
68 }
69
ClientOnLeaveLNNResult(IpcIo * data,IpcIo * reply)70 NO_SANITIZE("cfi") int32_t ClientOnLeaveLNNResult(IpcIo *data, IpcIo *reply)
71 {
72 if (data == NULL) {
73 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
74 return SOFTBUS_ERR;
75 }
76 size_t networkIdLen;
77 const char *networkId = (const char *)ReadString(data, &networkIdLen);
78 if (networkId == NULL) {
79 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnLeaveLNNResult read networkId failed!");
80 return SOFTBUS_ERR;
81 }
82 int32_t retCode = 0;
83 ReadInt32(data, &retCode);
84 int32_t retReply = LnnOnLeaveResult(networkId, retCode);
85 if (retReply != SOFTBUS_OK) {
86 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnLeaveLNNResult LnnOnLeaveResult failed!");
87 return SOFTBUS_ERR;
88 }
89 return SOFTBUS_OK;
90 }
91
ClientOnLeaveMetaNodeResult(IpcIo * data,IpcIo * reply)92 NO_SANITIZE("cfi") int32_t ClientOnLeaveMetaNodeResult(IpcIo *data, IpcIo *reply)
93 {
94 (void)data;
95 (void)reply;
96 return SOFTBUS_OK;
97 }
98
ClientOnNodeOnlineStateChanged(IpcIo * data,IpcIo * reply)99 int32_t ClientOnNodeOnlineStateChanged(IpcIo *data, IpcIo *reply)
100 {
101 if (data== NULL) {
102 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
103 return SOFTBUS_ERR;
104 }
105 bool isOnline;
106 ReadBool(data, &isOnline);
107 uint32_t infoSize = 0;
108 ReadUint32(data, &infoSize);
109 if (infoSize != sizeof(NodeBasicInfo)) {
110 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR,
111 "ClientOnNodeOnlineStateChanged read infoSize:%d failed!", infoSize);
112 return SOFTBUS_ERR;
113 }
114 void *info = (void *)ReadBuffer(data, infoSize);
115 if (info == NULL) {
116 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnNodeOnlineStateChanged read basic info failed!");
117 return SOFTBUS_ERR;
118 }
119 int32_t retReply = LnnOnNodeOnlineStateChanged("", isOnline, info);
120 if (retReply != SOFTBUS_OK) {
121 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR,
122 "ClientOnNodeOnlineStateChanged LnnOnNodeOnlineStateChanged failed!");
123 return SOFTBUS_ERR;
124 }
125 return SOFTBUS_OK;
126 }
127
ClientOnNodeBasicInfoChanged(IpcIo * data,IpcIo * reply)128 int32_t ClientOnNodeBasicInfoChanged(IpcIo *data, IpcIo *reply)
129 {
130 if (data == NULL) {
131 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
132 return SOFTBUS_ERR;
133 }
134
135 int32_t type = 0;
136 ReadInt32(data, &type);
137 uint32_t infoSize = 0;
138 ReadUint32(data, &infoSize);
139 if (infoSize != sizeof(NodeBasicInfo)) {
140 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR,
141 "ClientOnNodeBasicInfoChanged read infoSize:%d failed!", infoSize);
142 return SOFTBUS_ERR;
143 }
144 void *info = (void *)ReadBuffer(data, infoSize);
145 if (info == NULL) {
146 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnNodeBasicInfoChanged read basic info failed!");
147 return SOFTBUS_ERR;
148 }
149 int32_t retReply = LnnOnNodeBasicInfoChanged("", info, type);
150 if (retReply != SOFTBUS_OK) {
151 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR,
152 "ClientOnNodeBasicInfoChanged LnnOnNodeBasicInfoChanged failed!");
153 return SOFTBUS_ERR;
154 }
155 return SOFTBUS_OK;
156 }
157
ClientOnTimeSyncResult(IpcIo * data,IpcIo * reply)158 NO_SANITIZE("cfi") int32_t ClientOnTimeSyncResult(IpcIo *data, IpcIo *reply)
159 {
160 if (data == NULL) {
161 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
162 return SOFTBUS_ERR;
163 }
164
165 uint32_t infoSize = 0;
166 ReadUint32(data, &infoSize);
167 if (infoSize != sizeof(TimeSyncResultInfo)) {
168 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnTimeSyncResult read infoSize:%d failed!", infoSize);
169 return SOFTBUS_ERR;
170 }
171 void *info = (void *)ReadBuffer(data, infoSize);
172 if (info == NULL) {
173 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnTimeSyncResult read info failed!");
174 return SOFTBUS_ERR;
175 }
176 int32_t retCode = 0;
177 ReadInt32(data, &retCode);
178
179 int32_t retReply = LnnOnTimeSyncResult(info, retCode);
180 if (retReply != SOFTBUS_OK) {
181 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnTimeSyncResult LnnOnTimeSyncResult failed!");
182 return SOFTBUS_ERR;
183 }
184 return SOFTBUS_OK;
185 }
186
ClientOnPublishLNNResult(IpcIo * data,IpcIo * reply)187 NO_SANITIZE("cfi") void ClientOnPublishLNNResult(IpcIo *data, IpcIo *reply)
188 {
189 if (reply == NULL) {
190 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
191 return;
192 }
193 int32_t publishId;
194 ReadInt32(data, &publishId);
195 int32_t reason;
196 ReadInt32(data, &reason);
197 LnnOnPublishLNNResult(publishId, reason);
198 }
199
ClientOnRefreshLNNResult(IpcIo * data,IpcIo * reply)200 NO_SANITIZE("cfi") void ClientOnRefreshLNNResult(IpcIo *data, IpcIo *reply)
201 {
202 if (data == NULL) {
203 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
204 return;
205 }
206 int32_t refreshId;
207 ReadInt32(data, &refreshId);
208 int32_t reason;
209 ReadInt32(data, &reason);
210 LnnOnRefreshLNNResult(refreshId, reason);
211 }
212
ClientOnRefreshDeviceFound(IpcIo * data,IpcIo * reply)213 NO_SANITIZE("cfi") void ClientOnRefreshDeviceFound(IpcIo *data, IpcIo *reply)
214 {
215 if (data == NULL) {
216 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s:invalid param.", __func__);
217 return;
218 }
219 uint32_t infoSize;
220 ReadUint32(data, &infoSize);
221 if (infoSize != sizeof(DeviceInfo)) {
222 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR,
223 "ClientOnRefreshDeviceFound read infoSize:%d failed!", infoSize);
224 return;
225 }
226 void *info = (void *)ReadBuffer(data, infoSize);
227 if (info == NULL) {
228 SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "ClientOnRefreshDeviceFound read info failed!");
229 return;
230 }
231 LnnOnRefreshDeviceFound(info);
232 }
233