已开启
L1软总线传输模块功能裁剪 #12526
L1软总线传输模块功能裁剪 #12526
已开启
LBy_qhu创建于 9月12日
共 60 个文件变更+946-147
@@ -39,6 +39,8 @@ declare_args() {
39 dsoftbus_feature_trans_udp_stream = false39 dsoftbus_feature_trans_udp_stream = false
40 dsoftbus_feature_trans_udp = true40 dsoftbus_feature_trans_udp = true
41 dsoftbus_feature_trans_proxy_file = true41 dsoftbus_feature_trans_proxy_file = true
42+ dsoftbus_feature_trans_file = true
43+ dsoftbus_feature_trans_proxy_channel = true
42 dsoftbus_feature_trans_qos = false44 dsoftbus_feature_trans_qos = false
43 dsoftbus_feature_trans_htp = false45 dsoftbus_feature_trans_htp = false
44 dsoftbus_feature_trans_br_proxy = false46 dsoftbus_feature_trans_br_proxy = false
@@ -51,6 +51,8 @@
51 "dsoftbus_feature_trans_udp_stream",51 "dsoftbus_feature_trans_udp_stream",
52 "dsoftbus_feature_trans_udp",52 "dsoftbus_feature_trans_udp",
53 "dsoftbus_feature_trans_proxy_file",53 "dsoftbus_feature_trans_proxy_file",
54+ "dsoftbus_feature_trans_file",
55+ "dsoftbus_feature_trans_proxy_channel",
54 "dsoftbus_feature_trans_qos",56 "dsoftbus_feature_trans_qos",
55 "dsoftbus_feature_trans_htp",57 "dsoftbus_feature_trans_htp",
56 "dsoftbus_feature_trans_br_proxy",58 "dsoftbus_feature_trans_br_proxy",
@@ -25,11 +25,15 @@ extern "C" {
25int32_t TransProxySendInnerMessage(ProxyChannelInfo *info, const char *payLoad, uint32_t payLoadLen, int32_t priority);25int32_t TransProxySendInnerMessage(ProxyChannelInfo *info, const char *payLoad, uint32_t payLoadLen, int32_t priority);
26int32_t TransProxyHandshake(ProxyChannelInfo *info);26int32_t TransProxyHandshake(ProxyChannelInfo *info);
27int32_t TransProxyAckHandshake(uint32_t connId, ProxyChannelInfo *chan, int32_t retCode);27int32_t TransProxyAckHandshake(uint32_t connId, ProxyChannelInfo *chan, int32_t retCode);
28+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
28void TransProxyKeepalive(uint32_t connId, const ProxyChannelInfo *info);29void TransProxyKeepalive(uint32_t connId, const ProxyChannelInfo *info);
29int32_t TransProxyAckKeepalive(ProxyChannelInfo *info);30int32_t TransProxyAckKeepalive(ProxyChannelInfo *info);
31+#endif
30int32_t TransProxyResetPeer(ProxyChannelInfo *info);32int32_t TransProxyResetPeer(ProxyChannelInfo *info);
33+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
31int32_t TransPagingHandshake(int32_t channelId, uint8_t *authKey, uint32_t keyLen);34int32_t TransPagingHandshake(int32_t channelId, uint8_t *authKey, uint32_t keyLen);
32int32_t TransPagingAckHandshake(ProxyChannelInfo *chan, int32_t retCode);35int32_t TransPagingAckHandshake(ProxyChannelInfo *chan, int32_t retCode);
36+#endif
33#ifdef __cplusplus37#ifdef __cplusplus
34}38}
35#endif39#endif
@@ -79,17 +79,19 @@ int32_t TransProxyGetProxyChannelInfoByChannelId(int32_t channelId, ProxyChannel
79int32_t TransDealProxyCheckCollabResult(int32_t channelId, int32_t checkResult, pid_t callingPid);79int32_t TransDealProxyCheckCollabResult(int32_t channelId, int32_t checkResult, pid_t callingPid);
80int32_t TransProxyGetAppInfoById(int16_t channelId, AppInfo *appInfo);80int32_t TransProxyGetAppInfoById(int16_t channelId, AppInfo *appInfo);
81 81 
82-int32_t TransProxyCreatePagingChanInfo(ProxyChannelInfo *chan);
83int32_t TransProxyGetProxyChannelIdByAuthReq(uint32_t reqId, int32_t *channelId);82int32_t TransProxyGetProxyChannelIdByAuthReq(uint32_t reqId, int32_t *channelId);
83+void TransProxyProcessErrMsg(ProxyChannelInfo *info, int32_t errCode);
84+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
85+int32_t TransProxyCreatePagingChanInfo(ProxyChannelInfo *chan);
84int32_t TransPagingResetChan(ProxyChannelInfo *chanInfo);86int32_t TransPagingResetChan(ProxyChannelInfo *chanInfo);
85char *TransPagingPackHandshakeMsg(ProxyChannelInfo *info);87char *TransPagingPackHandshakeMsg(ProxyChannelInfo *info);
86int32_t TransPagingHandshakeUnPackErrMsg(ProxyChannelInfo *chan, const ProxyMessage *msg, int32_t *errCode);88int32_t TransPagingHandshakeUnPackErrMsg(ProxyChannelInfo *chan, const ProxyMessage *msg, int32_t *errCode);
87int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient);89int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient);
88-void TransProxyProcessErrMsg(ProxyChannelInfo *info, int32_t errCode);
89int32_t TransPagingUpdatePagingChannelInfo(ProxyChannelInfo *info);90int32_t TransPagingUpdatePagingChannelInfo(ProxyChannelInfo *info);
90int32_t TransPagingUpdatePidAndData(int32_t channelId, int32_t pid, char *data, uint32_t len);91int32_t TransPagingUpdatePidAndData(int32_t channelId, int32_t pid, char *data, uint32_t len);
91void TransPagingBadKeyRetry(int32_t channelId);92void TransPagingBadKeyRetry(int32_t channelId);
92int32_t TransPagingUpdateDataConfig(AppInfo *info);93int32_t TransPagingUpdateDataConfig(AppInfo *info);
94+#endif
93int32_t TransProxyD2dGetSleMac(int32_t channelId, int32_t pid, char *sleMac, uint32_t macLen);95int32_t TransProxyD2dGetSleMac(int32_t channelId, int32_t pid, char *sleMac, uint32_t macLen);
94void TransProxyUnRegQosInfo(uint32_t connId, int32_t channelId, bool isD2d);96void TransProxyUnRegQosInfo(uint32_t connId, int32_t channelId, bool isD2d);
95int32_t TransDisableConnBrIdleCheck(int32_t channelId);97int32_t TransDisableConnBrIdleCheck(int32_t channelId);
@@ -39,15 +39,18 @@ char *TransProxyPackIdentity(const char *identity);
39int32_t TransProxyUnpackIdentity(const char *msg, char *identity, uint32_t identitySize, int32_t len);39int32_t TransProxyUnpackIdentity(const char *msg, char *identity, uint32_t identitySize, int32_t len);
40int32_t PackPlaintextMessage(ProxyMessageHead *msg, ProxyDataInfo *dataInfo);40int32_t PackPlaintextMessage(ProxyMessageHead *msg, ProxyDataInfo *dataInfo);
41int32_t GetBrMacFromConnInfo(uint32_t connId, char *peerBrMac, uint32_t len);41int32_t GetBrMacFromConnInfo(uint32_t connId, char *peerBrMac, uint32_t len);
42-int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash);
43int32_t TransParseMessageHeadType(char *data, int32_t len, ProxyMessage *msg);42int32_t TransParseMessageHeadType(char *data, int32_t len, ProxyMessage *msg);
43+ 
44+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
45+int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash);
44char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan);46char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan);
45void TransPagingProcessHandshakeMsg(47void TransPagingProcessHandshakeMsg(
46 const ProxyMessage *msg, uint8_t *accountHash, uint8_t *udidHash, const char *authAccountHash);48 const ProxyMessage *msg, uint8_t *accountHash, uint8_t *udidHash, const char *authAccountHash);
47int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg);49int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg);
48-void TransWaitListenResult(const PagingListenCheckInfo *checkInfo, int32_t reason);
49char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId);50char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId);
50char *TransProxyPagingPackChannelId(int16_t channelId);51char *TransProxyPagingPackChannelId(int16_t channelId);
52+void TransWaitListenResult(const PagingListenCheckInfo *checkInfo, int32_t reason);
53+#endif
51 54 
52int32_t TransProxyParseD2DData(const char *data, int32_t len);55int32_t TransProxyParseD2DData(const char *data, int32_t len);
53 56 
@@ -32,6 +32,7 @@ typedef struct {
32 ConnectOption connInfo;32 ConnectOption connInfo;
33} ProxyConnInfo;33} ProxyConnInfo;
34 34 
35+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
35typedef struct {36typedef struct {
36 ListNode node;37 ListNode node;
37 uint32_t businessFlag;38 uint32_t businessFlag;
@@ -40,6 +41,7 @@ typedef struct {
40 bool isLoadFailed;41 bool isLoadFailed;
41 int32_t retryTime;42 int32_t retryTime;
42} ProxyPagingWaitInfo;43} ProxyPagingWaitInfo;
44+#endif
43 45 
44void TransProxyPostResetPeerMsgToLoop(const ProxyChannelInfo *chan);46void TransProxyPostResetPeerMsgToLoop(const ProxyChannelInfo *chan);
45void TransProxyPostHandshakeMsgToLoop(int32_t channelId);47void TransProxyPostHandshakeMsgToLoop(int32_t channelId);
@@ -48,7 +50,9 @@ void TransProxyPostOpenClosedMsgToLoop(const ProxyChannelInfo *chan);
48void TransProxyPostOpenFailMsgToLoop(const ProxyChannelInfo *chan, int32_t errCode);50void TransProxyPostOpenFailMsgToLoop(const ProxyChannelInfo *chan, int32_t errCode);
49void TransProxyPostKeepAliveMsgToLoop(const ProxyChannelInfo *chan);51void TransProxyPostKeepAliveMsgToLoop(const ProxyChannelInfo *chan);
50void TransProxyPostAuthNegoMsgToLooperDelay(uint32_t authRequestId, int32_t channelId, uint32_t delayTime);52void TransProxyPostAuthNegoMsgToLooperDelay(uint32_t authRequestId, int32_t channelId, uint32_t delayTime);
53+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
51void TransProxyPagingHandshakeMsgToLoop(int32_t channelId, uint8_t *authKey, uint32_t keyLen);54void TransProxyPagingHandshakeMsgToLoop(int32_t channelId, uint8_t *authKey, uint32_t keyLen);
55+#endif
52int32_t TransProxyTransInit(void);56int32_t TransProxyTransInit(void);
53int32_t TransProxyCloseConnChannel(uint32_t connectionId, bool isServer, bool isD2d);57int32_t TransProxyCloseConnChannel(uint32_t connectionId, bool isServer, bool isD2d);
54int32_t TransProxyCloseConnChannelReset(58int32_t TransProxyCloseConnChannelReset(
@@ -64,8 +68,10 @@ int32_t CheckIsProxyAuthChannel(ConnectOption *connInfo);
64void TransProxyNegoSessionKeySucc(int32_t channelId);68void TransProxyNegoSessionKeySucc(int32_t channelId);
65void TransProxyNegoSessionKeyFail(int32_t channelId, int32_t errCode);69void TransProxyNegoSessionKeyFail(int32_t channelId, int32_t errCode);
66int32_t TransProxyGetConnOptionByChanId(int32_t channelId, ConnectOption *connOpt);70int32_t TransProxyGetConnOptionByChanId(int32_t channelId, ConnectOption *connOpt);
71+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
67int32_t TransCheckPagingListenState(const PagingListenCheckInfo *checkInfo);72int32_t TransCheckPagingListenState(const PagingListenCheckInfo *checkInfo);
68int32_t TransPagingWaitListenStatus(const uint32_t businessFlag, PagingWaitListenStatus status);73int32_t TransPagingWaitListenStatus(const uint32_t businessFlag, PagingWaitListenStatus status);
74+#endif
69int32_t TransAddConnItem(ProxyConnInfo *conn);75int32_t TransAddConnItem(ProxyConnInfo *conn);
70 76 
71#ifdef __cplusplus77#ifdef __cplusplus
@@ -161,6 +161,7 @@ static int32_t SetCipherOfHandshakeMsg(ProxyChannelInfo *info, uint8_t *cipher)
161 return SOFTBUS_OK;161 return SOFTBUS_OK;
162}162}
163 163 
164+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
164static void TransUpdateSlePowerLevel(uint32_t connId, ConnectSlePowerLevel level)165static void TransUpdateSlePowerLevel(uint32_t connId, ConnectSlePowerLevel level)
165{166{
166 UpdateOption option = {167 UpdateOption option = {
@@ -192,7 +193,9 @@ static void TransPagingHandshakeEvent(int32_t channelId, ProxyChannelInfo *info)
192 };193 };
193 TRANS_EVENT(EVENT_SCENE_PAGING_CONNECT, EVENT_STAGE_PAGING_SOURCE_HANDSHAKE_START, extra);194 TRANS_EVENT(EVENT_SCENE_PAGING_CONNECT, EVENT_STAGE_PAGING_SOURCE_HANDSHAKE_START, extra);
194}195}
196+#endif
195 197 
198+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
196int32_t TransPagingHandshake(int32_t channelId, uint8_t *authKey, uint32_t keyLen)199int32_t TransPagingHandshake(int32_t channelId, uint8_t *authKey, uint32_t keyLen)
197{200{
198 TRANS_CHECK_AND_RETURN_RET_LOGE(keyLen != 0 && keyLen <= SESSION_KEY_LENGTH && authKey != NULL,201 TRANS_CHECK_AND_RETURN_RET_LOGE(keyLen != 0 && keyLen <= SESSION_KEY_LENGTH && authKey != NULL,
@@ -235,6 +238,7 @@ int32_t TransPagingHandshake(int32_t channelId, uint8_t *authKey, uint32_t keyLe
235 TransPagingHandshakeEvent(channelId, &info);238 TransPagingHandshakeEvent(channelId, &info);
236 return SOFTBUS_OK;239 return SOFTBUS_OK;
237}240}
241+#endif
238 242 
239int32_t TransProxyHandshake(ProxyChannelInfo *info)243int32_t TransProxyHandshake(ProxyChannelInfo *info)
240{244{
@@ -283,6 +287,7 @@ int32_t TransProxyHandshake(ProxyChannelInfo *info)
283 return SOFTBUS_OK;287 return SOFTBUS_OK;
284}288}
285 289 
290+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
286static int32_t TransPagingGetAuthKey(ProxyChannelInfo *chan, PagingProxyMessage *msg)291static int32_t TransPagingGetAuthKey(ProxyChannelInfo *chan, PagingProxyMessage *msg)
287{292{
288 RequestBusinessInfo businessInfo;293 RequestBusinessInfo businessInfo;
@@ -324,7 +329,9 @@ static void ReportPagingAckHandshakeExtra(const ProxyChannelInfo *chan, int32_t
324 extra.result = (retCode == SOFTBUS_OK) ? EVENT_STAGE_RESULT_OK : EVENT_STAGE_RESULT_FAILED;329 extra.result = (retCode == SOFTBUS_OK) ? EVENT_STAGE_RESULT_OK : EVENT_STAGE_RESULT_FAILED;
325 TRANS_EVENT(EVENT_SCENE_PAGING_CONNECT, EVENT_STAGE_PAGING_SINK_HANDSHAKE_END, extra);330 TRANS_EVENT(EVENT_SCENE_PAGING_CONNECT, EVENT_STAGE_PAGING_SINK_HANDSHAKE_END, extra);
326}331}
332+#endif
327 333 
334+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
328int32_t TransPagingAckHandshake(ProxyChannelInfo *chan, int32_t retCode)335int32_t TransPagingAckHandshake(ProxyChannelInfo *chan, int32_t retCode)
329{336{
330 TRANS_CHECK_AND_RETURN_RET_LOGE(chan != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL, "invalid param.");337 TRANS_CHECK_AND_RETURN_RET_LOGE(chan != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL, "invalid param.");
@@ -375,6 +382,7 @@ int32_t TransPagingAckHandshake(ProxyChannelInfo *chan, int32_t retCode)
375 ReportPagingAckHandshakeExtra(chan, ret);382 ReportPagingAckHandshakeExtra(chan, ret);
376 return SOFTBUS_OK;383 return SOFTBUS_OK;
377}384}
385+#endif
378 386 
379int32_t TransProxyAckHandshake(uint32_t connId, ProxyChannelInfo *chan, int32_t retCode)387int32_t TransProxyAckHandshake(uint32_t connId, ProxyChannelInfo *chan, int32_t retCode)
380{388{
@@ -417,6 +425,7 @@ int32_t TransProxyAckHandshake(uint32_t connId, ProxyChannelInfo *chan, int32_t
417 return SOFTBUS_OK;425 return SOFTBUS_OK;
418}426}
419 427 
428+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
420void TransProxyKeepalive(uint32_t connId, const ProxyChannelInfo *info)429void TransProxyKeepalive(uint32_t connId, const ProxyChannelInfo *info)
421{430{
422 if (info == NULL) {431 if (info == NULL) {
@@ -453,7 +462,9 @@ void TransProxyKeepalive(uint32_t connId, const ProxyChannelInfo *info)
453 return;462 return;
454 }463 }
455}464}
465+#endif
456 466 
467+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
457int32_t TransProxyAckKeepalive(ProxyChannelInfo *info)468int32_t TransProxyAckKeepalive(ProxyChannelInfo *info)
458{469{
459 if (info == NULL) {470 if (info == NULL) {
@@ -491,7 +502,9 @@ int32_t TransProxyAckKeepalive(ProxyChannelInfo *info)
491 }502 }
492 return SOFTBUS_OK;503 return SOFTBUS_OK;
493}504}
505+#endif
494 506 
507+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
495static void TransPagingResetBadkeyDisConnection(uint32_t connId)508static void TransPagingResetBadkeyDisConnection(uint32_t connId)
496{509{
497 TRANS_LOGW(TRANS_CTRL, "paging reset bad key dis connect, connId=%{public}u", connId);510 TRANS_LOGW(TRANS_CTRL, "paging reset bad key dis connect, connId=%{public}u", connId);
@@ -517,7 +530,9 @@ static void TransPagingResetBadkeyDisConnection(uint32_t connId)
517 TRANS_CHECK_AND_RETURN_LOGE(530 TRANS_CHECK_AND_RETURN_LOGE(
518 ret == SOFTBUS_OK, TRANS_CTRL, "ConnDisconnectDeviceAllConn fail, ret=%{public}d", ret);531 ret == SOFTBUS_OK, TRANS_CTRL, "ConnDisconnectDeviceAllConn fail, ret=%{public}d", ret);
519}532}
533+#endif
520 534 
535+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
521int32_t TransPagingReset(ProxyChannelInfo *info)536int32_t TransPagingReset(ProxyChannelInfo *info)
522{537{
523 char *payLoad = NULL;538 char *payLoad = NULL;
@@ -553,6 +568,7 @@ int32_t TransPagingReset(ProxyChannelInfo *info)
553 }568 }
554 return SOFTBUS_OK;569 return SOFTBUS_OK;
555}570}
571+#endif
556 572 
557int32_t TransProxyResetPeer(ProxyChannelInfo *info)573int32_t TransProxyResetPeer(ProxyChannelInfo *info)
558{574{
@@ -561,9 +577,11 @@ int32_t TransProxyResetPeer(ProxyChannelInfo *info)
561 return SOFTBUS_INVALID_PARAM;577 return SOFTBUS_INVALID_PARAM;
562 }578 }
563 TRANS_LOGI(TRANS_CTRL, "send reset msg myChannelId=%{public}d, peerChannelId=%{public}d", info->myId, info->peerId);579 TRANS_LOGI(TRANS_CTRL, "send reset msg myChannelId=%{public}d, peerChannelId=%{public}d", info->myId, info->peerId);
580+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
564 if (info->isD2D) {581 if (info->isD2D) {
565 return TransPagingReset(info);582 return TransPagingReset(info);
566 }583 }
584+#endif
567 char *payLoad = NULL;585 char *payLoad = NULL;
568 ProxyDataInfo dataInfo = {0};586 ProxyDataInfo dataInfo = {0};
569 ProxyMessageHead msgHead = {0};587 ProxyMessageHead msgHead = {0};
@@ -108,7 +108,6 @@ static int32_t NotifyNormalChannelOpened(int32_t channelId, const AppInfo *appIn
108{108{
109 ChannelInfo info = {0};109 ChannelInfo info = {0};
110 int32_t ret;110 int32_t ret;
111- char buf[NETWORK_ID_BUF_LEN] = {0};
112 111 
113 GetProxyChannelInfo(channelId, appInfo, isServer, &info);112 GetProxyChannelInfo(channelId, appInfo, isServer, &info);
114 if (appInfo->isD2D) {113 if (appInfo->isD2D) {
@@ -116,6 +115,8 @@ static int32_t NotifyNormalChannelOpened(int32_t channelId, const AppInfo *appIn
116 return TransProxyOnChannelOpened(appInfo->myData.pkgName, appInfo->myData.pid,115 return TransProxyOnChannelOpened(appInfo->myData.pkgName, appInfo->myData.pid,
117 appInfo->myData.sessionName, &info);116 appInfo->myData.sessionName, &info);
118 }117 }
118+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
119+ char buf[NETWORK_ID_BUF_LEN] = { 0 };
119 if (appInfo->appType != APP_TYPE_AUTH) {120 if (appInfo->appType != APP_TYPE_AUTH) {
120 ret = LnnGetNetworkIdByUuid(appInfo->peerData.deviceId, buf, NETWORK_ID_BUF_LEN);121 ret = LnnGetNetworkIdByUuid(appInfo->peerData.deviceId, buf, NETWORK_ID_BUF_LEN);
121 if (ret != SOFTBUS_OK) {122 if (ret != SOFTBUS_OK) {
@@ -135,6 +136,9 @@ static int32_t NotifyNormalChannelOpened(int32_t channelId, const AppInfo *appIn
135 } else {136 } else {
136 info.peerDeviceId = (char *)appInfo->peerData.deviceId;137 info.peerDeviceId = (char *)appInfo->peerData.deviceId;
137 }138 }
139+#else
140+ info.peerDeviceId = (char *)appInfo->peerData.deviceId;
141+#endif
138 info.isSupportTlv = GetCapabilityBit(appInfo->channelCapability, TRANS_CAPABILITY_TLV_OFFSET);142 info.isSupportTlv = GetCapabilityBit(appInfo->channelCapability, TRANS_CAPABILITY_TLV_OFFSET);
139 GetOsTypeByNetworkId(info.peerDeviceId, &info.osType);143 GetOsTypeByNetworkId(info.peerDeviceId, &info.osType);
140 ret = TransProxyOnChannelOpened(appInfo->myData.pkgName, appInfo->myData.pid, appInfo->myData.sessionName, &info);144 ret = TransProxyOnChannelOpened(appInfo->myData.pkgName, appInfo->myData.pid, appInfo->myData.sessionName, &info);
@@ -245,6 +249,7 @@ static int32_t TransProxyNotifyOpenFailedByType(
245 249 
246int32_t OnProxyChannelBind(int32_t channelId, const AppInfo *appInfo)250int32_t OnProxyChannelBind(int32_t channelId, const AppInfo *appInfo)
247{251{
252+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
248 int32_t ret = SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE;253 int32_t ret = SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE;
249 if (appInfo == NULL) {254 if (appInfo == NULL) {
250 TRANS_LOGE(TRANS_CTRL, "proxy channel bind app info invalid channelId=%{public}d", channelId);255 TRANS_LOGE(TRANS_CTRL, "proxy channel bind app info invalid channelId=%{public}d", channelId);
@@ -252,9 +257,9 @@ int32_t OnProxyChannelBind(int32_t channelId, const AppInfo *appInfo)
252 }257 }
253 switch (appInfo->appType) {258 switch (appInfo->appType) {
254 case APP_TYPE_NORMAL:259 case APP_TYPE_NORMAL:
255- case APP_TYPE_AUTH:
256 ret = TransProxyOnChannelBind(appInfo->myData.pkgName, appInfo->myData.pid, channelId);260 ret = TransProxyOnChannelBind(appInfo->myData.pkgName, appInfo->myData.pid, channelId);
257 break;261 break;
262+ case APP_TYPE_AUTH:
258 case APP_TYPE_INNER:263 case APP_TYPE_INNER:
259 ret = SOFTBUS_OK;264 ret = SOFTBUS_OK;
260 break;265 break;
@@ -265,6 +270,11 @@ int32_t OnProxyChannelBind(int32_t channelId, const AppInfo *appInfo)
265 TRANS_LOGI(270 TRANS_LOGI(
266 TRANS_CTRL, "channelId=%{public}d, ret=%{public}d, appType=%{public}d", channelId, ret, appInfo->appType);271 TRANS_CTRL, "channelId=%{public}d, ret=%{public}d, appType=%{public}d", channelId, ret, appInfo->appType);
267 return ret;272 return ret;
273+#else
274+ (void)channelId;
275+ (void)appInfo;
276+ return SOFTBUS_FUNC_NOT_SUPPORT;
277+#endif
268}278}
269 279 
270static void TransNotifyAlarm(const AppInfo *appInfo, int32_t errCode)280static void TransNotifyAlarm(const AppInfo *appInfo, int32_t errCode)
@@ -183,6 +183,7 @@ static int32_t TransGetLocalConfig(int32_t channelType, int32_t businessType, ui
183 return SOFTBUS_OK;183 return SOFTBUS_OK;
184}184}
185 185 
186+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
186int32_t TransPagingUpdateDataConfig(AppInfo *info)187int32_t TransPagingUpdateDataConfig(AppInfo *info)
187{188{
188 if (info == NULL) {189 if (info == NULL) {
@@ -285,7 +286,9 @@ int32_t TransPagingUpdatePidAndData(int32_t channelId, int32_t pid, char *data,
285 (void)SoftBusMutexUnlock(&g_proxyChannelList->lock);286 (void)SoftBusMutexUnlock(&g_proxyChannelList->lock);
286 return SOFTBUS_TRANS_NODE_NOT_FOUND;287 return SOFTBUS_TRANS_NODE_NOT_FOUND;
287}288}
289+#endif
288 290 
291+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
289static int32_t TransUpdateAuthSeqByChannelId(int32_t channelId, int32_t reqId)292static int32_t TransUpdateAuthSeqByChannelId(int32_t channelId, int32_t reqId)
290{293{
291 TRANS_CHECK_AND_RETURN_RET_LOGE(g_proxyChannelList != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL,294 TRANS_CHECK_AND_RETURN_RET_LOGE(g_proxyChannelList != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL,
@@ -371,6 +374,7 @@ void TransPagingBadKeyRetry(int32_t channelId)
371 TRANS_LOGE(TRANS_CTRL, "AuthGenApplyKey fail, ret=%{public}d", ret);374 TRANS_LOGE(TRANS_CTRL, "AuthGenApplyKey fail, ret=%{public}d", ret);
372 }375 }
373}376}
377+#endif
374 378 
375static int32_t TransProxyUpdateAckInfo(ProxyChannelInfo *info)379static int32_t TransProxyUpdateAckInfo(ProxyChannelInfo *info)
376{380{
@@ -717,6 +721,7 @@ static int32_t TransProxyDelByChannelId(int32_t channelId, ProxyChannelInfo *cha
717 return SOFTBUS_TRANS_NODE_NOT_FOUND;721 return SOFTBUS_TRANS_NODE_NOT_FOUND;
718}722}
719 723 
724+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
720int32_t TransPagingResetChan(ProxyChannelInfo *chanInfo)725int32_t TransPagingResetChan(ProxyChannelInfo *chanInfo)
721{726{
722 TRANS_CHECK_AND_RETURN_RET_LOGE(chanInfo != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL, "chanInfo is null");727 TRANS_CHECK_AND_RETURN_RET_LOGE(chanInfo != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL, "chanInfo is null");
@@ -746,6 +751,7 @@ int32_t TransPagingResetChan(ProxyChannelInfo *chanInfo)
746 751 
747 return SOFTBUS_TRANS_NODE_NOT_FOUND;752 return SOFTBUS_TRANS_NODE_NOT_FOUND;
748}753}
754+#endif
749 755 
750static int32_t TransProxyResetChan(ProxyChannelInfo *chanInfo)756static int32_t TransProxyResetChan(ProxyChannelInfo *chanInfo)
751{757{
@@ -1041,6 +1047,7 @@ static void TransProxyReportAuditEvent(ProxyChannelInfo *info, SoftbusAuditType
1041 TRANS_AUDIT(AUDIT_SCENE_OPEN_SESSION, extra);1047 TRANS_AUDIT(AUDIT_SCENE_OPEN_SESSION, extra);
1042}1048}
1043 1049 
1050+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1044int32_t TransPagingHandshakeUnPackErrMsg(ProxyChannelInfo *chan, const ProxyMessage *msg, int32_t *errCode)1051int32_t TransPagingHandshakeUnPackErrMsg(ProxyChannelInfo *chan, const ProxyMessage *msg, int32_t *errCode)
1045{1052{
1046 if (errCode == NULL || chan == NULL || msg == NULL) {1053 if (errCode == NULL || chan == NULL || msg == NULL) {
@@ -1066,6 +1073,7 @@ int32_t TransPagingHandshakeUnPackErrMsg(ProxyChannelInfo *chan, const ProxyMess
1066 cJSON_Delete(root);1073 cJSON_Delete(root);
1067 return SOFTBUS_OK;1074 return SOFTBUS_OK;
1068}1075}
1076+#endif
1069 1077 
1070static int32_t TransProxyHandshakeUnpackErrMsg(ProxyChannelInfo *info, const ProxyMessage *msg, int32_t *errCode)1078static int32_t TransProxyHandshakeUnpackErrMsg(ProxyChannelInfo *info, const ProxyMessage *msg, int32_t *errCode)
1071{1079{
@@ -1329,6 +1337,7 @@ static int32_t TransProxyFillChannelInfo(const ProxyMessage *msg, ProxyChannelIn
1329 return SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE;1337 return SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE;
1330 }1338 }
1331 1339 
1340+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1332 if (chan->appInfo.appType == APP_TYPE_NORMAL && chan->appInfo.callingTokenId != TOKENID_NOT_SET) {1341 if (chan->appInfo.appType == APP_TYPE_NORMAL && chan->appInfo.callingTokenId != TOKENID_NOT_SET) {
1333 (void)LnnGetNetworkIdByUuid(chan->appInfo.peerData.deviceId, chan->appInfo.peerNetWorkId, NETWORK_ID_BUF_LEN);1342 (void)LnnGetNetworkIdByUuid(chan->appInfo.peerData.deviceId, chan->appInfo.peerNetWorkId, NETWORK_ID_BUF_LEN);
1334 int32_t osType = 0;1343 int32_t osType = 0;
@@ -1342,6 +1351,12 @@ static int32_t TransProxyFillChannelInfo(const ProxyMessage *msg, ProxyChannelIn
1342 TRANS_LOGI(TRANS_CTRL, "not support acl check");1351 TRANS_LOGI(TRANS_CTRL, "not support acl check");
1343 }1352 }
1344 }1353 }
1354+#else
1355+ if (chan->appInfo.appType == APP_TYPE_NORMAL) {
1356+ TRANS_LOGE(TRANS_CTRL, "normal proxy channel not support, feature disabled");
1357+ return SOFTBUS_FUNC_NOT_SUPPORT;
1358+ }
1359+#endif
1345 1360 
1346 if (TransCheckServerPermission(chan->appInfo.myData.sessionName, chan->appInfo.peerData.sessionName) !=1361 if (TransCheckServerPermission(chan->appInfo.myData.sessionName, chan->appInfo.peerData.sessionName) !=
1347 SOFTBUS_OK) {1362 SOFTBUS_OK) {
@@ -1494,6 +1509,7 @@ static int32_t TransProxySaveAndOnOpen(ProxyChannelInfo *chan, int32_t channelId
1494 TRANS_LOGE(TRANS_CTRL, "AddChanItem fail");1509 TRANS_LOGE(TRANS_CTRL, "AddChanItem fail");
1495 goto EXIT_RELEASE;1510 goto EXIT_RELEASE;
1496 }1511 }
1512+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1497 if (tmpChan.appInfo.appType == APP_TYPE_NORMAL) {1513 if (tmpChan.appInfo.appType == APP_TYPE_NORMAL) {
1498 ret = CheckCollabRelation(&(tmpChan.appInfo), tmpChan.channelId, CHANNEL_TYPE_PROXY);1514 ret = CheckCollabRelation(&(tmpChan.appInfo), tmpChan.channelId, CHANNEL_TYPE_PROXY);
1499 if (ret == SOFTBUS_OK) {1515 if (ret == SOFTBUS_OK) {
@@ -1505,6 +1521,13 @@ static int32_t TransProxySaveAndOnOpen(ProxyChannelInfo *chan, int32_t channelId
1505 return ret;1521 return ret;
1506 }1522 }
1507 }1523 }
1524+#else
1525+ if (tmpChan.appInfo.appType == APP_TYPE_NORMAL) {
1526+ ret = SOFTBUS_FUNC_NOT_SUPPORT;
1527+ TRANS_LOGE(TRANS_CTRL, "normal proxy channel not support, feature disabled");
1528+ goto EXIT_RELEASE;
1529+ }
1530+#endif
1508 ret = TransServerProxyChannelOpened(&tmpChan, extra, channelId);1531 ret = TransServerProxyChannelOpened(&tmpChan, extra, channelId);
1509 return ret;1532 return ret;
1510EXIT_RELEASE:1533EXIT_RELEASE:
@@ -1693,7 +1716,9 @@ static int32_t TransHandleD2DProxyChannelOpened(
1693{1716{
1694 if (LnnIsOsAccountConstraint()) {1717 if (LnnIsOsAccountConstraint()) {
1695 TRANS_LOGE(TRANS_CTRL, "block mode: channelId=%{public}d", channelId);1718 TRANS_LOGE(TRANS_CTRL, "block mode: channelId=%{public}d", channelId);
1719+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1696 (void)TransPagingAckHandshake(chan, SOFTBUS_TRANS_BLOCK_MODE_REJECTED);1720 (void)TransPagingAckHandshake(chan, SOFTBUS_TRANS_BLOCK_MODE_REJECTED);
1721+#endif
1697 (void)OnProxyChannelClosed(chan->channelId, &(chan->appInfo));1722 (void)OnProxyChannelClosed(chan->channelId, &(chan->appInfo));
1698 TransProxyDelChanByChanId(chan->channelId);1723 TransProxyDelChanByChanId(chan->channelId);
1699 return SOFTBUS_TRANS_BLOCK_MODE_REJECTED;1724 return SOFTBUS_TRANS_BLOCK_MODE_REJECTED;
@@ -1705,6 +1730,7 @@ static int32_t TransHandleD2DProxyChannelOpened(
1705 TransProxyDelChanByChanId(chan->channelId);1730 TransProxyDelChanByChanId(chan->channelId);
1706 return ret;1731 return ret;
1707 }1732 }
1733+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1708 ret = TransPagingAckHandshake(chan, openResult);1734 ret = TransPagingAckHandshake(chan, openResult);
1709 if (ret != SOFTBUS_OK) {1735 if (ret != SOFTBUS_OK) {
1710 TRANS_LOGE(TRANS_CTRL,1736 TRANS_LOGE(TRANS_CTRL,
@@ -1713,6 +1739,9 @@ static int32_t TransHandleD2DProxyChannelOpened(
1713 TransProxyDelChanByChanId(chan->channelId);1739 TransProxyDelChanByChanId(chan->channelId);
1714 return ret;1740 return ret;
1715 }1741 }
1742+#else
1743+ (void)openResult;
1744+#endif
1716 return OnProxyChannelBind(chan->channelId, &chan->appInfo);1745 return OnProxyChannelBind(chan->channelId, &chan->appInfo);
1717}1746}
1718 1747 
@@ -1800,7 +1829,11 @@ void TransAsyncProxyChannelTask(int32_t channelId)
1800 if (curCount >= LOOPER_REPLY_CNT_MAX) {1829 if (curCount >= LOOPER_REPLY_CNT_MAX) {
1801 TRANS_LOGE(TRANS_CTRL, "Open proxy channel timeout, channelId=%{public}d", channelId);1830 TRANS_LOGE(TRANS_CTRL, "Open proxy channel timeout, channelId=%{public}d", channelId);
1802 if (chan.isD2D) {1831 if (chan.isD2D) {
1832+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1803 (void)TransPagingAckHandshake(&chan, SOFTBUS_TRANS_OPEN_CHANNEL_NEGTIATE_TIMEOUT);1833 (void)TransPagingAckHandshake(&chan, SOFTBUS_TRANS_OPEN_CHANNEL_NEGTIATE_TIMEOUT);
1834+#else
1835+ TRANS_LOGE(TRANS_CTRL, "paging ack handshake not support, feature disabled");
1836+#endif
1804 } else {1837 } else {
1805 (void)TransProxyAckHandshake(chan.connId, &chan, SOFTBUS_TRANS_OPEN_CHANNEL_NEGTIATE_TIMEOUT);1838 (void)TransProxyAckHandshake(chan.connId, &chan, SOFTBUS_TRANS_OPEN_CHANNEL_NEGTIATE_TIMEOUT);
1806 }1839 }
@@ -1970,7 +2003,9 @@ void TransProxyProcessKeepAlive(const ProxyMessage *msg)
1970 return;2003 return;
1971 }2004 }
1972 2005 
2006+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1973 TransProxyAckKeepalive(info);2007 TransProxyAckKeepalive(info);
2008+#endif
1974 (void)memset_s(info->appInfo.sessionKey, sizeof(info->appInfo.sessionKey), 0, sizeof(info->appInfo.sessionKey));2009 (void)memset_s(info->appInfo.sessionKey, sizeof(info->appInfo.sessionKey), 0, sizeof(info->appInfo.sessionKey));
1975 (void)memset_s(info->appInfo.sinkSessionKey, sizeof(info->appInfo.sinkSessionKey), 0,2010 (void)memset_s(info->appInfo.sinkSessionKey, sizeof(info->appInfo.sinkSessionKey), 0,
1976 sizeof(info->appInfo.sinkSessionKey));2011 sizeof(info->appInfo.sinkSessionKey));
@@ -2094,6 +2129,7 @@ int32_t TransProxyCreateChanInfo(ProxyChannelInfo *chan, int32_t channelId, cons
2094 return SOFTBUS_OK;2129 return SOFTBUS_OK;
2095}2130}
2096 2131 
2132+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
2097int32_t TransProxyCreatePagingChanInfo(ProxyChannelInfo *chan)2133int32_t TransProxyCreatePagingChanInfo(ProxyChannelInfo *chan)
2098{2134{
2099 TRANS_CHECK_AND_RETURN_RET_LOGE(chan != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL, "channel info is null");2135 TRANS_CHECK_AND_RETURN_RET_LOGE(chan != NULL, SOFTBUS_INVALID_PARAM, TRANS_CTRL, "channel info is null");
@@ -2102,6 +2138,7 @@ int32_t TransProxyCreatePagingChanInfo(ProxyChannelInfo *chan)
2102 TRANS_CTRL, "trans proxy add channelId fail. channelId=%{public}d", chan->channelId);2138 TRANS_CTRL, "trans proxy add channelId fail. channelId=%{public}d", chan->channelId);
2103 return SOFTBUS_OK;2139 return SOFTBUS_OK;
2104}2140}
2141+#endif
2105 2142 
2106static void TransProxyUpdateBlePriority(int32_t channelId, uint32_t connId, BlePriority priority)2143static void TransProxyUpdateBlePriority(int32_t channelId, uint32_t connId, BlePriority priority)
2107{2144{
@@ -2785,6 +2822,7 @@ int32_t TransProxySetAuthHandleByChanId(int32_t channelId, AuthHandle authHandle
2785 return SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND;2822 return SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND;
2786}2823}
2787 2824 
2825+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
2788int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient)2826int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient)
2789{2827{
2790 TRANS_CHECK_AND_RETURN_RET_LOGE(2828 TRANS_CHECK_AND_RETURN_RET_LOGE(
@@ -2809,6 +2847,7 @@ int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo,
2809 (void)SoftBusMutexUnlock(&g_proxyChannelList->lock);2847 (void)SoftBusMutexUnlock(&g_proxyChannelList->lock);
2810 return SOFTBUS_TRANS_NODE_NOT_FOUND;2848 return SOFTBUS_TRANS_NODE_NOT_FOUND;
2811}2849}
2850+#endif
2812 2851 
2813int32_t TransProxyGetPrivilegeCloseList(ListNode *privilegeCloseList, uint64_t tokenId, int32_t pid)2852int32_t TransProxyGetPrivilegeCloseList(ListNode *privilegeCloseList, uint64_t tokenId, int32_t pid)
2814{2853{
@@ -70,6 +70,7 @@ int32_t TransParseMessageHeadType(char *data, int32_t len, ProxyMessage *msg)
70 return SOFTBUS_OK;70 return SOFTBUS_OK;
71}71}
72 72 
73+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
73static int32_t TransPagingParseHandshakeMessageHead(char *data, int32_t len, ProxyMessage *msg,74static int32_t TransPagingParseHandshakeMessageHead(char *data, int32_t len, ProxyMessage *msg,
74 uint8_t *accountHash, uint8_t *udidHash)75 uint8_t *accountHash, uint8_t *udidHash)
75{76{
@@ -99,6 +100,7 @@ static void TransPagingParseMessageHead(char *data, int32_t len, ProxyMessage *m
99 msg->data = data + PAGING_CHANNEL_HEAD_LEN;100 msg->data = data + PAGING_CHANNEL_HEAD_LEN;
100 msg->dataLen = len - PAGING_CHANNEL_HEAD_LEN;101 msg->dataLen = len - PAGING_CHANNEL_HEAD_LEN;
101}102}
103+#endif
102 104 
103static int32_t TransProxyParseMessageHead(char *data, int32_t len, ProxyMessage *msg)105static int32_t TransProxyParseMessageHead(char *data, int32_t len, ProxyMessage *msg)
104{106{
@@ -355,6 +357,7 @@ static int32_t TransProxyParseMessageNoDecrypt(ProxyMessage *msg)
355 return SOFTBUS_OK;357 return SOFTBUS_OK;
356}358}
357 359 
360+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
358static bool TransUnPackPagingExtraData(cJSON *root, void *extraData)361static bool TransUnPackPagingExtraData(cJSON *root, void *extraData)
359{362{
360 char extraDataStr[EXTRA_DATA_STR_MAX_LEN] = {0};363 char extraDataStr[EXTRA_DATA_STR_MAX_LEN] = {0};
@@ -1004,6 +1007,7 @@ int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg)
1004 SoftBusFree(msg->data);1007 SoftBusFree(msg->data);
1005 return SOFTBUS_OK;1008 return SOFTBUS_OK;
1006}1009}
1010+#endif
1007 1011 
1008int32_t TransProxyParseMessage(char *data, int32_t len, ProxyMessage *msg, AuthHandle *auth)1012int32_t TransProxyParseMessage(char *data, int32_t len, ProxyMessage *msg, AuthHandle *auth)
1009{1013{
@@ -1098,6 +1102,7 @@ static int32_t PackEncryptedMessage(ProxyMessageHead *msg, AuthHandle authHandle
1098 return SOFTBUS_OK;1102 return SOFTBUS_OK;
1099}1103}
1100 1104 
1105+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1101int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash)1106int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash)
1102{1107{
1103 if (msg == NULL || dataInfo == NULL || chan == NULL) {1108 if (msg == NULL || dataInfo == NULL || chan == NULL) {
@@ -1133,6 +1138,7 @@ int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo,
1133 dataInfo->outLen = size;1138 dataInfo->outLen = size;
1134 return SOFTBUS_OK;1139 return SOFTBUS_OK;
1135}1140}
1141+#endif
1136 1142 
1137int32_t TransProxyPackMessage(1143int32_t TransProxyPackMessage(
1138 ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo)1144 ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo)
@@ -1154,6 +1160,7 @@ int32_t TransProxyPackMessage(
1154 return SOFTBUS_OK;1160 return SOFTBUS_OK;
1155}1161}
1156 1162 
1163+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1157static int32_t PackHandshakeMsgForFastData(AppInfo *appInfo, cJSON *root)1164static int32_t PackHandshakeMsgForFastData(AppInfo *appInfo, cJSON *root)
1158{1165{
1159 // fastTransData is NULL, just fill fastTransDataSize1166 // fastTransData is NULL, just fill fastTransDataSize
@@ -1226,6 +1233,7 @@ char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId)
1226 cJSON_Delete(root);1233 cJSON_Delete(root);
1227 return buf;1234 return buf;
1228}1235}
1236+#endif
1229 1237 
1230char *TransProxyPackHandshakeErrMsg(int32_t errCode)1238char *TransProxyPackHandshakeErrMsg(int32_t errCode)
1231{1239{
@@ -1266,6 +1274,7 @@ static bool TransProxyAddJsonObject(cJSON *root, ProxyChannelInfo *info)
1266 return true;1274 return true;
1267}1275}
1268 1276 
1277+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1269static bool TransPackPagingExtraData(cJSON *root, void *extraData)1278static bool TransPackPagingExtraData(cJSON *root, void *extraData)
1270{1279{
1271 char extraDataStr[EXTRA_DATA_STR_MAX_LEN] = { 0 };1280 char extraDataStr[EXTRA_DATA_STR_MAX_LEN] = { 0 };
@@ -1313,6 +1322,30 @@ char *TransPagingPackHandshakeMsg(ProxyChannelInfo *info)
1313 cJSON_Delete(root);1322 cJSON_Delete(root);
1314 return buf;1323 return buf;
1315}1324}
1325+#endif
1326+ 
1327+static bool PackAuthHandshakeFields(cJSON *root, AppInfo *appInfo)
1328+{
1329+ if (strlen(appInfo->reqId) == 0 && GenerateRandomStr(appInfo->reqId, REQ_ID_SIZE_MAX) != SOFTBUS_OK) {
1330+ return false;
1331+ }
1332+ if (!AddStringToJsonObject(root, JSON_KEY_REQUEST_ID, appInfo->reqId)) {
1333+ return false;
1334+ }
1335+ return AddStringToJsonObject(root, JSON_KEY_PKG_NAME, appInfo->myData.pkgName);
1336+}
1337+ 
1338+static bool PackInnerHandshakeFields(cJSON *root, AppInfo *appInfo, SessionKeyBase64 *sessionBase64)
1339+{
1340+ int32_t ret = SoftBusBase64Encode((uint8_t *)sessionBase64->sessionKeyBase64,
1341+ sizeof(sessionBase64->sessionKeyBase64), &(sessionBase64->len),
1342+ (uint8_t *)appInfo->sessionKey, sizeof(appInfo->sessionKey));
1343+ if (ret != SOFTBUS_OK) {
1344+ TRANS_LOGE(TRANS_CTRL, "mbedtls_base64_encode FAIL ret=%{public}d", ret);
1345+ return false;
1346+ }
1347+ return AddStringToJsonObject(root, JSON_KEY_SESSION_KEY, sessionBase64->sessionKeyBase64);
1348+}
1316 1349 
1317char *TransProxyPackHandshakeMsg(ProxyChannelInfo *info)1350char *TransProxyPackHandshakeMsg(ProxyChannelInfo *info)
1318{1351{
@@ -1320,7 +1353,6 @@ char *TransProxyPackHandshakeMsg(ProxyChannelInfo *info)
1320 TRANS_LOGE(TRANS_CTRL, "invalid param.");1353 TRANS_LOGE(TRANS_CTRL, "invalid param.");
1321 return NULL;1354 return NULL;
1322 }1355 }
1323- 
1324 cJSON *root = cJSON_CreateObject();1356 cJSON *root = cJSON_CreateObject();
1325 if (root == NULL) {1357 if (root == NULL) {
1326 TRANS_LOGE(TRANS_CTRL, "create json object failed.");1358 TRANS_LOGE(TRANS_CTRL, "create json object failed.");
@@ -1335,28 +1367,20 @@ char *TransProxyPackHandshakeMsg(ProxyChannelInfo *info)
1335 }1367 }
1336 (void)cJSON_AddTrueToObject(root, JSON_KEY_HAS_PRIORITY);1368 (void)cJSON_AddTrueToObject(root, JSON_KEY_HAS_PRIORITY);
1337 if (appInfo->appType == APP_TYPE_NORMAL) {1369 if (appInfo->appType == APP_TYPE_NORMAL) {
1370+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1338 if (PackHandshakeMsgForNormal(&sessionBase64, appInfo, root) != SOFTBUS_OK) {1371 if (PackHandshakeMsgForNormal(&sessionBase64, appInfo, root) != SOFTBUS_OK) {
1339 goto EXIT;1372 goto EXIT;
1340 }1373 }
1374+#else
1375+ TRANS_LOGE(TRANS_CTRL, "normal proxy channel not support, feature disabled");
1376+ goto EXIT;
1377+#endif
1341 } else if (appInfo->appType == APP_TYPE_AUTH) {1378 } else if (appInfo->appType == APP_TYPE_AUTH) {
1342- if (strlen(appInfo->reqId) == 0 && GenerateRandomStr(appInfo->reqId, REQ_ID_SIZE_MAX) != SOFTBUS_OK) {1379+ if (!PackAuthHandshakeFields(root, appInfo)) {
1343- goto EXIT;
1344- }
1345- if (!AddStringToJsonObject(root, JSON_KEY_REQUEST_ID, appInfo->reqId)) {
1346- goto EXIT;
1347- }
1348- if (!AddStringToJsonObject(root, JSON_KEY_PKG_NAME, appInfo->myData.pkgName)) {
1349 goto EXIT;1380 goto EXIT;
1350 }1381 }
1351 } else {1382 } else {
1352- int32_t ret = SoftBusBase64Encode((uint8_t *)sessionBase64.sessionKeyBase64,1383+ if (!PackInnerHandshakeFields(root, appInfo, &sessionBase64)) {
1353- sizeof(sessionBase64.sessionKeyBase64), &(sessionBase64.len),
1354- (uint8_t *)appInfo->sessionKey, sizeof(appInfo->sessionKey));
1355- if (ret != SOFTBUS_OK) {
1356- TRANS_LOGE(TRANS_CTRL, "mbedtls_base64_encode FAIL ret=%{public}d", ret);
1357- goto EXIT;
1358- }
1359- if (!AddStringToJsonObject(root, JSON_KEY_SESSION_KEY, sessionBase64.sessionKeyBase64)) {
1360 goto EXIT;1384 goto EXIT;
1361 }1385 }
1362 }1386 }
@@ -1366,6 +1390,7 @@ EXIT:
1366 return buf;1390 return buf;
1367}1391}
1368 1392 
1393+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1369static int32_t AddSinkSessionKeyToHandshakeAckMsg(cJSON *root, const AppInfo *appInfo)1394static int32_t AddSinkSessionKeyToHandshakeAckMsg(cJSON *root, const AppInfo *appInfo)
1370{1395{
1371 (void)AddStringToJsonObject(root, JSON_KEY_SINK_ACL_ACCOUNT_ID, appInfo->myData.accountId);1396 (void)AddStringToJsonObject(root, JSON_KEY_SINK_ACL_ACCOUNT_ID, appInfo->myData.accountId);
@@ -1427,6 +1452,24 @@ char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan)
1427 return buf;1452 return buf;
1428}1453}
1429 1454 
1455+static bool PackNormalAckFields(cJSON *root, const AppInfo *appInfo, ProxyChannelInfo *chan)
1456+{
1457+ if (!AddNumberToJsonObject(root, JSON_KEY_UID, appInfo->myData.uid) ||
1458+ !AddNumberToJsonObject(root, JSON_KEY_PID, appInfo->myData.pid) ||
1459+ !AddStringToJsonObject(root, JSON_KEY_PKG_NAME, appInfo->myData.pkgName) ||
1460+ !AddNumberToJsonObject(root, JSON_KEY_ENCRYPT, appInfo->encrypt) ||
1461+ !AddNumberToJsonObject(root, JSON_KEY_ALGORITHM, appInfo->algorithm) ||
1462+ !AddNumberToJsonObject(root, JSON_KEY_CRC, appInfo->crc) ||
1463+ !AddNumber16ToJsonObject(root, JSON_KEY_FIRST_DATA_SIZE, appInfo->fastTransDataSize) ||
1464+ !AddStringToJsonObject(root, JSON_KEY_SRC_BUS_NAME, appInfo->myData.sessionName) ||
1465+ !AddStringToJsonObject(root, JSON_KEY_DST_BUS_NAME, appInfo->peerData.sessionName)) {
1466+ return false;
1467+ }
1468+ (void)AddNumberToJsonObject(root, JSON_KEY_MY_HANDLE_ID, appInfo->myHandleId);
1469+ return AddSinkSessionKeyToHandshakeAckMsg(root, &chan->appInfo) == SOFTBUS_OK;
1470+}
1471+#endif
1472+ 
1430char *TransProxyPackHandshakeAckMsg(ProxyChannelInfo *chan)1473char *TransProxyPackHandshakeAckMsg(ProxyChannelInfo *chan)
1431{1474{
1432 TRANS_CHECK_AND_RETURN_RET_LOGE(chan != NULL, NULL, TRANS_CTRL, "invalid param.");1475 TRANS_CHECK_AND_RETURN_RET_LOGE(chan != NULL, NULL, TRANS_CTRL, "invalid param.");
@@ -1450,30 +1493,22 @@ char *TransProxyPackHandshakeAckMsg(ProxyChannelInfo *chan)
1450 }1493 }
1451 (void)cJSON_AddTrueToObject(root, JSON_KEY_HAS_PRIORITY);1494 (void)cJSON_AddTrueToObject(root, JSON_KEY_HAS_PRIORITY);
1452 if (appInfo->appType == APP_TYPE_NORMAL) {1495 if (appInfo->appType == APP_TYPE_NORMAL) {
1453- if (!AddNumberToJsonObject(root, JSON_KEY_UID, appInfo->myData.uid) ||1496+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1454- !AddNumberToJsonObject(root, JSON_KEY_PID, appInfo->myData.pid) ||1497+ if (!PackNormalAckFields(root, appInfo, chan)) {
1455- !AddStringToJsonObject(root, JSON_KEY_PKG_NAME, appInfo->myData.pkgName) ||
1456- !AddNumberToJsonObject(root, JSON_KEY_ENCRYPT, appInfo->encrypt) ||
1457- !AddNumberToJsonObject(root, JSON_KEY_ALGORITHM, appInfo->algorithm) ||
1458- !AddNumberToJsonObject(root, JSON_KEY_CRC, appInfo->crc) ||
1459- !AddNumber16ToJsonObject(root, JSON_KEY_FIRST_DATA_SIZE, appInfo->fastTransDataSize) ||
1460- !AddStringToJsonObject(root, JSON_KEY_SRC_BUS_NAME, appInfo->myData.sessionName) ||
1461- !AddStringToJsonObject(root, JSON_KEY_DST_BUS_NAME, appInfo->peerData.sessionName)) {
1462- cJSON_Delete(root);
1463- return NULL;
1464- }
1465- (void)AddNumberToJsonObject(root, JSON_KEY_MY_HANDLE_ID, appInfo->myHandleId);
1466- if (AddSinkSessionKeyToHandshakeAckMsg(root, &chan->appInfo) != SOFTBUS_OK) {
1467 cJSON_Delete(root);1498 cJSON_Delete(root);
1468 return NULL;1499 return NULL;
1469 }1500 }
1501+#else
1502+ TRANS_LOGE(TRANS_CTRL, "normal proxy channel not support, feature disabled");
1503+ cJSON_Delete(root);
1504+ return NULL;
1505+#endif
1470 } else if (appInfo->appType == APP_TYPE_AUTH) {1506 } else if (appInfo->appType == APP_TYPE_AUTH) {
1471 if (!AddStringToJsonObject(root, JSON_KEY_PKG_NAME, appInfo->myData.pkgName)) {1507 if (!AddStringToJsonObject(root, JSON_KEY_PKG_NAME, appInfo->myData.pkgName)) {
1472 cJSON_Delete(root);1508 cJSON_Delete(root);
1473 return NULL;1509 return NULL;
1474 }1510 }
1475 }1511 }
1476- 
1477 char *buf = cJSON_PrintUnformatted(root);1512 char *buf = cJSON_PrintUnformatted(root);
1478 cJSON_Delete(root);1513 cJSON_Delete(root);
1479 return buf;1514 return buf;
@@ -1536,6 +1571,7 @@ static int32_t GetSinkSessionKeyFromHandshakeAckMsg(cJSON *root, AppInfo *appInf
1536 return DecryptAndAddSinkSessionKey(root, appInfo);1571 return DecryptAndAddSinkSessionKey(root, appInfo);
1537}1572}
1538 1573 
1574+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1539static void GetNoramlInfoFromHandshakeAckMsg(cJSON *root, ProxyChannelInfo *chanInfo)1575static void GetNoramlInfoFromHandshakeAckMsg(cJSON *root, ProxyChannelInfo *chanInfo)
1540{1576{
1541 if (!GetJsonObjectNumberItem(root, JSON_KEY_UID, &chanInfo->appInfo.peerData.uid) ||1577 if (!GetJsonObjectNumberItem(root, JSON_KEY_UID, &chanInfo->appInfo.peerData.uid) ||
@@ -1550,6 +1586,7 @@ static void GetNoramlInfoFromHandshakeAckMsg(cJSON *root, ProxyChannelInfo *chan
1550 TRANS_LOGW(TRANS_CTRL, "unpack handshake ack old version");1586 TRANS_LOGW(TRANS_CTRL, "unpack handshake ack old version");
1551 }1587 }
1552}1588}
1589+#endif
1553 1590 
1554int32_t TransProxyUnpackHandshakeAckMsg(const char *msg, ProxyChannelInfo *chanInfo, int32_t len)1591int32_t TransProxyUnpackHandshakeAckMsg(const char *msg, ProxyChannelInfo *chanInfo, int32_t len)
1555{1592{
@@ -1581,12 +1618,20 @@ int32_t TransProxyUnpackHandshakeAckMsg(const char *msg, ProxyChannelInfo *chanI
1581 cJSON_Delete(root);1618 cJSON_Delete(root);
1582 return SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE;1619 return SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE;
1583 }1620 }
1621+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1584 if (chanInfo->appInfo.appType == APP_TYPE_NORMAL) {1622 if (chanInfo->appInfo.appType == APP_TYPE_NORMAL) {
1585 GetNoramlInfoFromHandshakeAckMsg(root, chanInfo);1623 GetNoramlInfoFromHandshakeAckMsg(root, chanInfo);
1586 if (!GetJsonObjectInt32Item(root, JSON_KEY_MY_HANDLE_ID, &chanInfo->appInfo.peerHandleId)) {1624 if (!GetJsonObjectInt32Item(root, JSON_KEY_MY_HANDLE_ID, &chanInfo->appInfo.peerHandleId)) {
1587 chanInfo->appInfo.peerHandleId = -1;1625 chanInfo->appInfo.peerHandleId = -1;
1588 }1626 }
1589 }1627 }
1628+#else
1629+ if (chanInfo->appInfo.appType == APP_TYPE_NORMAL) {
1630+ TRANS_LOGE(TRANS_CTRL, "normal proxy channel not support, feature disabled");
1631+ cJSON_Delete(root);
1632+ return SOFTBUS_FUNC_NOT_SUPPORT;
1633+ }
1634+#endif
1590 1635 
1591 if (!GetJsonObjectStringItem(root, JSON_KEY_PKG_NAME, chanInfo->appInfo.peerData.pkgName,1636 if (!GetJsonObjectStringItem(root, JSON_KEY_PKG_NAME, chanInfo->appInfo.peerData.pkgName,
1592 sizeof(chanInfo->appInfo.peerData.pkgName))) {1637 sizeof(chanInfo->appInfo.peerData.pkgName))) {
@@ -1603,6 +1648,7 @@ int32_t TransProxyUnpackHandshakeAckMsg(const char *msg, ProxyChannelInfo *chanI
1603 return SOFTBUS_OK;1648 return SOFTBUS_OK;
1604}1649}
1605 1650 
1651+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1606static int32_t UnpackPackHandshakeMsgForFastData(AppInfo *appInfo, cJSON *root)1652static int32_t UnpackPackHandshakeMsgForFastData(AppInfo *appInfo, cJSON *root)
1607{1653{
1608 (void)LnnGetNetworkIdByUuid(appInfo->peerData.deviceId, appInfo->peerNetWorkId, NETWORK_ID_BUF_LEN);1654 (void)LnnGetNetworkIdByUuid(appInfo->peerData.deviceId, appInfo->peerNetWorkId, NETWORK_ID_BUF_LEN);
@@ -1705,6 +1751,7 @@ static int32_t TransProxyUnpackNormalHandshakeMsg(cJSON *root, AppInfo *appInfo,
1705 root, JSON_KEY_SOURCE_ACL_EXTRA_INFO, (appInfo->extraAccessInfo), EXTRA_ACCESS_INFO_LEN_MAX);1751 root, JSON_KEY_SOURCE_ACL_EXTRA_INFO, (appInfo->extraAccessInfo), EXTRA_ACCESS_INFO_LEN_MAX);
1706 return SOFTBUS_OK;1752 return SOFTBUS_OK;
1707}1753}
1754+#endif
1708 1755 
1709static int32_t TransProxyUnpackAuthHandshakeMsg(cJSON *root, AppInfo *appInfo)1756static int32_t TransProxyUnpackAuthHandshakeMsg(cJSON *root, AppInfo *appInfo)
1710{1757{
@@ -1774,10 +1821,16 @@ int32_t TransProxyUnpackHandshakeMsg(const char *msg, ProxyChannelInfo *chan, in
1774 goto ERR_EXIT;1821 goto ERR_EXIT;
1775 }1822 }
1776 if (appInfo->appType == APP_TYPE_NORMAL) {1823 if (appInfo->appType == APP_TYPE_NORMAL) {
1824+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1777 ret = TransProxyUnpackNormalHandshakeMsg(root, appInfo, sessionKey, BASE64KEY);1825 ret = TransProxyUnpackNormalHandshakeMsg(root, appInfo, sessionKey, BASE64KEY);
1778 if (ret != SOFTBUS_OK) {1826 if (ret != SOFTBUS_OK) {
1779 goto ERR_EXIT;1827 goto ERR_EXIT;
1780 }1828 }
1829+#else
1830+ ret = SOFTBUS_FUNC_NOT_SUPPORT;
1831+ TRANS_LOGE(TRANS_CTRL, "normal proxy channel not support, feature disabled");
1832+ goto ERR_EXIT;
1833+#endif
1781 } else if (appInfo->appType == APP_TYPE_AUTH) {1834 } else if (appInfo->appType == APP_TYPE_AUTH) {
1782 ret = TransProxyUnpackAuthHandshakeMsg(root, appInfo);1835 ret = TransProxyUnpackAuthHandshakeMsg(root, appInfo);
1783 if (ret != SOFTBUS_OK) {1836 if (ret != SOFTBUS_OK) {
@@ -1802,6 +1855,7 @@ ERR_EXIT:
1802 return ret;1855 return ret;
1803}1856}
1804 1857 
1858+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1805char *TransProxyPagingPackChannelId(int16_t channelId)1859char *TransProxyPagingPackChannelId(int16_t channelId)
1806{1860{
1807 if (channelId <= 0) {1861 if (channelId <= 0) {
@@ -1827,6 +1881,7 @@ char *TransProxyPagingPackChannelId(int16_t channelId)
1827 cJSON_Delete(root);1881 cJSON_Delete(root);
1828 return buf;1882 return buf;
1829}1883}
1884+#endif
1830 1885 
1831char *TransProxyPackIdentity(const char *identity)1886char *TransProxyPackIdentity(const char *identity)
1832{1887{
@@ -49,7 +49,9 @@
49#define WAIT_LISTEN_CHECK_NUM (50)49#define WAIT_LISTEN_CHECK_NUM (50)
50 50 
51static SoftBusList *g_proxyConnectionList = NULL;51static SoftBusList *g_proxyConnectionList = NULL;
52+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
52static SoftBusList *g_proxyPagingWaitList = NULL;53static SoftBusList *g_proxyPagingWaitList = NULL;
54+#endif
53const char *g_transProxyLoopName = "transProxyLoopName";55const char *g_transProxyLoopName = "transProxyLoopName";
54SoftBusHandler g_transLoopHandler = { 0 };56SoftBusHandler g_transLoopHandler = { 0 };
55 57 
@@ -208,6 +210,7 @@ static int32_t TransProxyResetAndCloseConn(ProxyChannelInfo *chan)
208 return SOFTBUS_OK;210 return SOFTBUS_OK;
209}211}
210 212 
213+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
211static void TransProxyLoopMsgHandlerEx(SoftBusMessage *msg)214static void TransProxyLoopMsgHandlerEx(SoftBusMessage *msg)
212{215{
213 TRANS_CHECK_AND_RETURN_LOGE(msg != NULL, TRANS_MSG, "param invalid");216 TRANS_CHECK_AND_RETURN_LOGE(msg != NULL, TRANS_MSG, "param invalid");
@@ -224,6 +227,7 @@ static void TransProxyLoopMsgHandlerEx(SoftBusMessage *msg)
224 break;227 break;
225 }228 }
226}229}
230+#endif
227 231 
228static void TransProxyLoopMsgHandler(SoftBusMessage *msg)232static void TransProxyLoopMsgHandler(SoftBusMessage *msg)
229{233{
@@ -258,7 +262,9 @@ static void TransProxyLoopMsgHandler(SoftBusMessage *msg)
258 case LOOP_KEEPALIVE_MSG:262 case LOOP_KEEPALIVE_MSG:
259 chan = (ProxyChannelInfo *)msg->obj;263 chan = (ProxyChannelInfo *)msg->obj;
260 TRANS_CHECK_AND_RETURN_LOGE(chan != NULL, TRANS_MSG, "LOOP_KEEPALIVE_MSG, chan is null");264 TRANS_CHECK_AND_RETURN_LOGE(chan != NULL, TRANS_MSG, "LOOP_KEEPALIVE_MSG, chan is null");
265+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
261 TransProxyKeepalive(chan->connId, chan);266 TransProxyKeepalive(chan->connId, chan);
267+#endif
262 break;268 break;
263 case LOOP_RESETPEER_MSG:269 case LOOP_RESETPEER_MSG:
264 chan = (ProxyChannelInfo *)msg->obj;270 chan = (ProxyChannelInfo *)msg->obj;
@@ -272,7 +278,9 @@ static void TransProxyLoopMsgHandler(SoftBusMessage *msg)
272 break;278 break;
273 }279 }
274 default:280 default:
281+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
275 TransProxyLoopMsgHandlerEx(msg);282 TransProxyLoopMsgHandlerEx(msg);
283+#endif
276 break;284 break;
277 }285 }
278}286}
@@ -408,6 +416,7 @@ void TransProxyPostOpenClosedMsgToLoop(const ProxyChannelInfo *chan)
408 g_transLoopHandler.looper->PostMessage(g_transLoopHandler.looper, msg);416 g_transLoopHandler.looper->PostMessage(g_transLoopHandler.looper, msg);
409}417}
410 418 
419+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
411void TransProxyPagingHandshakeMsgToLoop(int32_t channelId, uint8_t *authKey, uint32_t keyLen)420void TransProxyPagingHandshakeMsgToLoop(int32_t channelId, uint8_t *authKey, uint32_t keyLen)
412{421{
413 if (authKey == NULL) {422 if (authKey == NULL) {
@@ -424,6 +433,7 @@ void TransProxyPagingHandshakeMsgToLoop(int32_t channelId, uint8_t *authKey, uin
424 }433 }
425 g_transLoopHandler.looper->PostMessage(g_transLoopHandler.looper, msg);434 g_transLoopHandler.looper->PostMessage(g_transLoopHandler.looper, msg);
426}435}
436+#endif
427 437 
428static int32_t TransProxyLoopInit(void)438static int32_t TransProxyLoopInit(void)
429{439{
@@ -987,10 +997,12 @@ static void TransProxyOnDataReceived(uint32_t connectionId, ConnModule moduleId,
987 return;997 return;
988 }998 }
989 if (msg.msgHead.type >= PROXYCHANNEL_MSG_TYPE_PAGING_HANDSHAKE) {999 if (msg.msgHead.type >= PROXYCHANNEL_MSG_TYPE_PAGING_HANDSHAKE) {
1000+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
990 ret = TransPagingParseMessage(data, len, &msg);1001 ret = TransPagingParseMessage(data, len, &msg);
991 if (ret != SOFTBUS_OK) {1002 if (ret != SOFTBUS_OK) {
992 TRANS_LOGE(TRANS_CTRL, "parse paging data failed.");1003 TRANS_LOGE(TRANS_CTRL, "parse paging data failed.");
993 }1004 }
1005+#endif
994 return;1006 return;
995 }1007 }
996 AuthHandle authHandle = { .authId = AUTH_INVALID_ID };1008 AuthHandle authHandle = { .authId = AUTH_INVALID_ID };
@@ -1033,11 +1045,13 @@ int32_t TransProxyTransInit(void)
1033 TRANS_LOGE(TRANS_INIT, "create observer list failed");1045 TRANS_LOGE(TRANS_INIT, "create observer list failed");
1034 return SOFTBUS_MALLOC_ERR;1046 return SOFTBUS_MALLOC_ERR;
1035 }1047 }
1048+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1036 g_proxyPagingWaitList = CreateSoftBusList();1049 g_proxyPagingWaitList = CreateSoftBusList();
1037 if (g_proxyPagingWaitList == NULL) {1050 if (g_proxyPagingWaitList == NULL) {
1038 TRANS_LOGE(TRANS_INIT, "create paging handshake list failed");1051 TRANS_LOGE(TRANS_INIT, "create paging handshake list failed");
1039 return SOFTBUS_MALLOC_ERR;1052 return SOFTBUS_MALLOC_ERR;
1040 }1053 }
1054+#endif
1041 1055 
1042 ret = TransProxyLoopInit();1056 ret = TransProxyLoopInit();
1043 TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, TRANS_INIT, "create loopInit fail");1057 TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, TRANS_INIT, "create loopInit fail");
@@ -1240,6 +1254,7 @@ void TransProxyNegoSessionKeySucc(int32_t channelId)
1240 SoftBusFree(channelInfo);1254 SoftBusFree(channelInfo);
1241}1255}
1242 1256 
1257+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1243int32_t TransPagingWaitListenStatus(const uint32_t businessFlag, PagingWaitListenStatus status)1258int32_t TransPagingWaitListenStatus(const uint32_t businessFlag, PagingWaitListenStatus status)
1244{1259{
1245 if (status < PAGING_WAIT_LISTEN_DONE || status > PAGING_WAIT_LISTEN_LOAD_SA_FAIL) {1260 if (status < PAGING_WAIT_LISTEN_DONE || status > PAGING_WAIT_LISTEN_LOAD_SA_FAIL) {
@@ -1419,3 +1434,4 @@ int32_t TransCheckPagingListenState(const PagingListenCheckInfo *checkInfo)
1419 }1434 }
1420 return SOFTBUS_OK;1435 return SOFTBUS_OK;
1421}1436}
1437+#endif
@@ -202,6 +202,22 @@ if (dsoftbus_feature_trans_mintp) {
202 defines += [ "DSOFTBUS_FEATURE_TRANS_MINTP" ]202 defines += [ "DSOFTBUS_FEATURE_TRANS_MINTP" ]
203}203}
204 204 
205+if (dsoftbus_feature_trans_file) {
206+ defines += [ "DSOFTBUS_FEATURE_TRANS_FILE" ]
207+}
208+ 
209+if (dsoftbus_feature_trans_udp_file) {
210+ defines += [ "DSOFTBUS_FEATURE_TRANS_UDP_FILE" ]
211+}
212+ 
213+if (dsoftbus_feature_trans_proxy_file) {
214+ defines += [ "DSOFTBUS_FEATURE_TRANS_PROXY_FILE" ]
215+}
216+ 
217+if (dsoftbus_feature_trans_proxy_channel) {
218+ defines += [ "DSOFTBUS_FEATURE_PROXY_CHANNEL" ]
219+}
220+ 
205if (dsoftbus_feature_multi_foreground_user) {221if (dsoftbus_feature_multi_foreground_user) {
206 defines += [ "DSOFTBUS_FEATURE_MULTI_FOREGROUND_USER" ]222 defines += [ "DSOFTBUS_FEATURE_MULTI_FOREGROUND_USER" ]
207}223}
@@ -332,6 +332,7 @@ int32_t SendStream(int32_t sessionId, const StreamData *data, const StreamData *
332 return ClientTransChannelSendStream(channelId, type, data, ext, param);332 return ClientTransChannelSendStream(channelId, type, data, ext, param);
333}333}
334 334 
335+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
335static int32_t ClientCheckFuncPointer(void *func)336static int32_t ClientCheckFuncPointer(void *func)
336{337{
337 if (func == NULL) {338 if (func == NULL) {
@@ -359,8 +360,58 @@ static int32_t SetSchemaCallbackPacked(FileSchema fileSchema, const char *sFileL
359 return pfnClientEnhanceFuncList->setSchemaCallback(fileSchema, sFileList, fileCnt);360 return pfnClientEnhanceFuncList->setSchemaCallback(fileSchema, sFileList, fileCnt);
360}361}
361 362 
363+static int32_t CheckFileSchemaAndSetCallback(int32_t sessionId, const char *sFileList[], uint32_t fileCnt)
364+{
365+ FileSchemaListener *fileSchemaListener = (FileSchemaListener *)SoftBusCalloc(sizeof(FileSchemaListener));
366+ if (fileSchemaListener == NULL) {
367+ return SOFTBUS_MALLOC_ERR;
368+ }
369+ int32_t ret = SOFTBUS_OK;
370+ if (CheckFileSchemaPacked(sessionId, fileSchemaListener) == SOFTBUS_OK) {
371+ ret = SetSchemaCallbackPacked(fileSchemaListener->schema, sFileList, fileCnt);
372+ if (ret != SOFTBUS_OK) {
373+ TRANS_LOGE(TRANS_FILE, "set schema callback failed, sessionId=%{public}d, ret=%{public}d", sessionId, ret);
374+ }
375+ }
376+ SoftBusFree(fileSchemaListener);
377+ return ret;
378+}
379+ 
380+static int32_t ValidateSendFileChannel(int32_t sessionId, int32_t *channelId, int32_t *type)
381+{
382+ SessionEnableStatus enableStatus = ENABLE_STATUS_INIT;
383+ if (ClientGetChannelBySessionId(sessionId, channelId, type, &enableStatus) != SOFTBUS_OK) {
384+ TRANS_LOGE(TRANS_FILE, "ClientGetChannelBySessionId failed, sessionId=%{public}d", sessionId);
385+ return SOFTBUS_TRANS_INVALID_SESSION_ID;
386+ }
387+ int32_t businessType = BUSINESS_TYPE_BUTT;
388+ if (ClientGetChannelBusinessTypeBySessionId(sessionId, &businessType) != SOFTBUS_OK) {
389+ TRANS_LOGE(TRANS_FILE, "ClientGetChannelBusinessTypeBySessionId failed, sessionId=%{public}d", sessionId);
390+ return SOFTBUS_TRANS_INVALID_SESSION_ID;
391+ }
392+ if ((businessType != BUSINESS_TYPE_FILE) && (businessType != BUSINESS_TYPE_NOT_CARE)) {
393+ TRANS_LOGE(TRANS_FILE, "BusinessType no match, sessionId=%{public}d, businessType=%{public}d",
394+ sessionId, businessType);
395+ return SOFTBUS_TRANS_BUSINESS_TYPE_NOT_MATCH;
396+ }
397+ if (enableStatus != ENABLE_STATUS_SUCCESS) {
398+ TRANS_LOGE(TRANS_FILE, "Enable status failed, sessionId=%{public}d", sessionId);
399+ return SOFTBUS_TRANS_SESSION_NO_ENABLE;
400+ }
401+ return SOFTBUS_OK;
402+}
403+#endif
404+ 
362int32_t SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)405int32_t SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)
363{406{
407+#ifndef DSOFTBUS_FEATURE_TRANS_FILE
408+ (void)sessionId;
409+ (void)sFileList;
410+ (void)dFileList;
411+ (void)fileCnt;
412+ TRANS_LOGW(TRANS_FILE, "SendFile not support, trans_file feature disabled");
413+ return SOFTBUS_FUNC_NOT_SUPPORT;
414+#else
364 if ((sFileList == NULL) || (fileCnt == 0)) {415 if ((sFileList == NULL) || (fileCnt == 0)) {
365 TRANS_LOGE(TRANS_FILE, "Invalid param");416 TRANS_LOGE(TRANS_FILE, "Invalid param");
366 return SOFTBUS_INVALID_PARAM;417 return SOFTBUS_INVALID_PARAM;
@@ -368,48 +419,13 @@ int32_t SendFile(int sessionId, const char *sFileList[], const char *dFileList[]
368 int32_t ret = CheckPermissionState(sessionId);419 int32_t ret = CheckPermissionState(sessionId);
369 TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret,420 TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret,
370 TRANS_FILE, "SendFile no permission, sessionId=%{public}d, ret=%{public}d", sessionId, ret);421 TRANS_FILE, "SendFile no permission, sessionId=%{public}d, ret=%{public}d", sessionId, ret);
371- 422+ ret = CheckFileSchemaAndSetCallback(sessionId, sFileList, fileCnt);
372- FileSchemaListener *fileSchemaListener = (FileSchemaListener *)SoftBusCalloc(sizeof(FileSchemaListener));423+ TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, TRANS_FILE, "check file schema failed");
373- if (fileSchemaListener == NULL) {
374- return SOFTBUS_MALLOC_ERR;
375- }
376- if (CheckFileSchemaPacked(sessionId, fileSchemaListener) == SOFTBUS_OK) {
377- ret = SetSchemaCallbackPacked(fileSchemaListener->schema, sFileList, fileCnt);
378- if (ret != SOFTBUS_OK) {
379- TRANS_LOGE(TRANS_FILE, "set schema callback failed, sessionId=%{public}d, ret=%{public}d", sessionId, ret);
380- SoftBusFree(fileSchemaListener);
381- return ret;
382- }
383- }
384- 
385 int32_t channelId = INVALID_CHANNEL_ID;424 int32_t channelId = INVALID_CHANNEL_ID;
386 int32_t type = CHANNEL_TYPE_BUTT;425 int32_t type = CHANNEL_TYPE_BUTT;
387- SessionEnableStatus enableStatus = ENABLE_STATUS_INIT;426+ ret = ValidateSendFileChannel(sessionId, &channelId, &type);
388- if (ClientGetChannelBySessionId(sessionId, &channelId, &type, &enableStatus) != SOFTBUS_OK) {427+ TRANS_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, TRANS_FILE, "validate channel failed");
389- TRANS_LOGE(TRANS_FILE, "ClientGetChannelBySessionId failed, sessionId=%{public}d", sessionId);
390- SoftBusFree(fileSchemaListener);
391- return SOFTBUS_TRANS_INVALID_SESSION_ID;
392- }
393- 
394- int32_t businessType = BUSINESS_TYPE_BUTT;
395- if (ClientGetChannelBusinessTypeBySessionId(sessionId, &businessType) != SOFTBUS_OK) {
396- TRANS_LOGE(TRANS_FILE, "ClientGetChannelBusinessTypeBySessionId failed, sessionId=%{public}d", sessionId);
397- SoftBusFree(fileSchemaListener);
398- return SOFTBUS_TRANS_INVALID_SESSION_ID;
399- }
400- if ((businessType != BUSINESS_TYPE_FILE) && (businessType != BUSINESS_TYPE_NOT_CARE)) {
401- TRANS_LOGE(TRANS_FILE,
402- "BusinessType no match, sessionId=%{public}d, businessType=%{public}d", sessionId, businessType);
403- SoftBusFree(fileSchemaListener);
404- return SOFTBUS_TRANS_BUSINESS_TYPE_NOT_MATCH;
405- }
406- 
407- if (enableStatus != ENABLE_STATUS_SUCCESS) {
408- TRANS_LOGE(TRANS_FILE, "Enable status failed, sessionId=%{public}d", sessionId);
409- SoftBusFree(fileSchemaListener);
410- return SOFTBUS_TRANS_SESSION_NO_ENABLE;
411- }
412- SoftBusFree(fileSchemaListener);
413 (void)ClientResetIdleTimeoutById(sessionId);428 (void)ClientResetIdleTimeoutById(sessionId);
414 return ClientTransChannelSendFile(channelId, type, sFileList, dFileList, fileCnt);429 return ClientTransChannelSendFile(channelId, type, sFileList, dFileList, fileCnt);
430+#endif
415}431}
@@ -717,6 +717,7 @@ int32_t TransOnSessionClosed(int32_t channelId, int32_t channelType, ShutdownRea
717 return SOFTBUS_OK;717 return SOFTBUS_OK;
718}718}
719 719 
720+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
720static int32_t ProcessReceivedFileData(721static int32_t ProcessReceivedFileData(
721 int32_t sessionId, int32_t channelId, const char *data, uint32_t len, SessionPktType type)722 int32_t sessionId, int32_t channelId, const char *data, uint32_t len, SessionPktType type)
722{723{
@@ -734,6 +735,39 @@ static int32_t ProcessReceivedFileData(
734 }735 }
735 return SOFTBUS_OK;736 return SOFTBUS_OK;
736}737}
738+#endif
739+ 
740+static void HandleBytesReceived(int32_t sessionId, const void *data, uint32_t len,
741+ const SessionListenerAdapter *sessionCallback, const ISocketListener *listener)
742+{
743+ if ((data == NULL) || (sessionCallback == NULL) || (listener == NULL)) {
744+ TRANS_LOGE(TRANS_SDK, "Invalid param");
745+ return;
746+ }
747+ if (sessionCallback->isSocketListener) {
748+ if (listener->OnBytes != NULL) {
749+ listener->OnBytes(sessionId, data, len);
750+ }
751+ } else if (sessionCallback->session.OnBytesReceived != NULL) {
752+ sessionCallback->session.OnBytesReceived(sessionId, data, len);
753+ }
754+}
755+ 
756+static void HandleMessageReceived(int32_t sessionId, const void *data, uint32_t len,
757+ const SessionListenerAdapter *sessionCallback, const ISocketListener *listener)
758+{
759+ if ((data == NULL) || (sessionCallback == NULL) || (listener == NULL)) {
760+ TRANS_LOGE(TRANS_SDK, "Invalid param");
761+ return;
762+ }
763+ if (sessionCallback->isSocketListener) {
764+ if (listener->OnMessage != NULL) {
765+ listener->OnMessage(sessionId, data, len);
766+ }
767+ } else if (sessionCallback->session.OnMessageReceived != NULL) {
768+ sessionCallback->session.OnMessageReceived(sessionId, data, len);
769+ }
770+}
737 771 
738int32_t TransOnDataReceived(int32_t channelId, int32_t channelType, const void *data, uint32_t len, SessionPktType type)772int32_t TransOnDataReceived(int32_t channelId, int32_t channelType, const void *data, uint32_t len, SessionPktType type)
739{773{
@@ -754,22 +788,10 @@ int32_t TransOnDataReceived(int32_t channelId, int32_t channelType, const void *
754 }788 }
755 switch (type) {789 switch (type) {
756 case TRANS_SESSION_BYTES:790 case TRANS_SESSION_BYTES:
757- if (sessionCallback.isSocketListener) {791+ HandleBytesReceived(sessionId, data, len, &sessionCallback, listener);
758- if (listener->OnBytes != NULL) {
759- listener->OnBytes(sessionId, data, len);
760- }
761- } else if (sessionCallback.session.OnBytesReceived != NULL) {
762- sessionCallback.session.OnBytesReceived(sessionId, data, len);
763- }
764 break;792 break;
765 case TRANS_SESSION_MESSAGE:793 case TRANS_SESSION_MESSAGE:
766- if (sessionCallback.isSocketListener) {794+ HandleMessageReceived(sessionId, data, len, &sessionCallback, listener);
767- if (listener->OnMessage != NULL) {
768- listener->OnMessage(sessionId, data, len);
769- }
770- } else if (sessionCallback.session.OnMessageReceived != NULL) {
771- sessionCallback.session.OnMessageReceived(sessionId, data, len);
772- }
773 break;795 break;
774 case TRANS_SESSION_FILE_FIRST_FRAME:796 case TRANS_SESSION_FILE_FIRST_FRAME:
775 case TRANS_SESSION_FILE_ONGOINE_FRAME:797 case TRANS_SESSION_FILE_ONGOINE_FRAME:
@@ -780,10 +802,15 @@ int32_t TransOnDataReceived(int32_t channelId, int32_t channelType, const void *
780 case TRANS_SESSION_FILE_RESULT_FRAME:802 case TRANS_SESSION_FILE_RESULT_FRAME:
781 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:803 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:
782 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:804 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:
805+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
783 if (channelType == CHANNEL_TYPE_PROXY) {806 if (channelType == CHANNEL_TYPE_PROXY) {
784 return ProcessReceivedFileData(sessionId, channelId, (char *)data, len, type);807 return ProcessReceivedFileData(sessionId, channelId, (char *)data, len, type);
785 }808 }
786 break;809 break;
810+#else
811+ TRANS_LOGW(TRANS_FILE, "file not support, type=%{public}d", type);
812+ return SOFTBUS_FUNC_NOT_SUPPORT;
813+#endif
787 default:814 default:
788 TRANS_LOGE(TRANS_FILE, "revc unknown session type = %{public}d", type);815 TRANS_LOGE(TRANS_FILE, "revc unknown session type = %{public}d", type);
789 return SOFTBUS_TRANS_INVALID_SESSION_TYPE;816 return SOFTBUS_TRANS_INVALID_SESSION_TYPE;
@@ -22,7 +22,6 @@
22#include "client_bus_center_manager.h"22#include "client_bus_center_manager.h"
23#include "client_trans_channel_manager.h"23#include "client_trans_channel_manager.h"
24#include "client_trans_file_listener.h"24#include "client_trans_file_listener.h"
25-#include "client_trans_proxy_file_manager.h"
26#include "client_trans_socket_manager.h"25#include "client_trans_socket_manager.h"
27#include "client_trans_tcp_direct_listener.h"26#include "client_trans_tcp_direct_listener.h"
28#include "client_trans_tcp_direct_manager.h"27#include "client_trans_tcp_direct_manager.h"
@@ -197,7 +197,9 @@ void ClientDestroySession(const ListNode *destroyList, ShutdownReason reason)
197 SoftBusFree(destroyNode);197 SoftBusFree(destroyNode);
198 continue;198 continue;
199 }199 }
200+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
200 (void)ClientDeleteRecvFileList(id);201 (void)ClientDeleteRecvFileList(id);
202+#endif
201 (void)ClientTransCloseChannel(destroyNode->channelId, destroyNode->channelType, id);203 (void)ClientTransCloseChannel(destroyNode->channelId, destroyNode->channelType, id);
202 if (destroyNode->OnSessionClosed != NULL) {204 if (destroyNode->OnSessionClosed != NULL) {
203 destroyNode->OnSessionClosed(id);205 destroyNode->OnSessionClosed(id);
@@ -815,7 +817,9 @@ void ClientCleanUpIdleTimeoutSocket(const ListNode *destroyList)
815 DestroySessionInfo *destroyNodeNext = NULL;817 DestroySessionInfo *destroyNodeNext = NULL;
816 LIST_FOR_EACH_ENTRY_SAFE(destroyNode, destroyNodeNext, destroyList, DestroySessionInfo, node) {818 LIST_FOR_EACH_ENTRY_SAFE(destroyNode, destroyNodeNext, destroyList, DestroySessionInfo, node) {
817 int32_t id = destroyNode->sessionId;819 int32_t id = destroyNode->sessionId;
820+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
818 (void)ClientDeleteRecvFileList(id);821 (void)ClientDeleteRecvFileList(id);
822+#endif
819 (void)ClientTransCloseChannel(destroyNode->channelId, destroyNode->channelType, id);823 (void)ClientTransCloseChannel(destroyNode->channelId, destroyNode->channelType, id);
820 TRANS_LOGI(TRANS_SDK, "session is idle, sessionId=%{public}d", id);824 TRANS_LOGI(TRANS_SDK, "session is idle, sessionId=%{public}d", id);
821 if (destroyNode->OnShutdown != NULL) {825 if (destroyNode->OnShutdown != NULL) {
@@ -60,6 +60,12 @@ static int32_t CheckSocketInfoIsValid(const SocketInfo *info)
60 AnonymizeFree(anonyNetworkId);60 AnonymizeFree(anonyNetworkId);
61 return SOFTBUS_INVALID_PARAM;61 return SOFTBUS_INVALID_PARAM;
62 }62 }
63+#ifndef DSOFTBUS_FEATURE_TRANS_FILE
64+ if (info->dataType == DATA_TYPE_FILE) {
65+ TRANS_LOGE(TRANS_SDK, "file not support, trans_file feature disabled");
66+ return SOFTBUS_FUNC_NOT_SUPPORT;
67+ }
68+#endif
63 return SOFTBUS_OK;69 return SOFTBUS_OK;
64}70}
65 71 
@@ -31,7 +31,6 @@ if (defined(ohos_lite)) {
31 "$dsoftbus_root_path/sdk/transmission/trans_channel/statistics/include",31 "$dsoftbus_root_path/sdk/transmission/trans_channel/statistics/include",
32 "$dsoftbus_root_path/sdk/transmission/trans_channel/udp/file/include",32 "$dsoftbus_root_path/sdk/transmission/trans_channel/udp/file/include",
33 "//third_party/cJSON",33 "//third_party/cJSON",
34- "$dsoftbus_root_path/components/nstackx/nstackx_core/dfile/interfaces",
35 ]34 ]
36 trans_session_sdk_src += [35 trans_session_sdk_src += [
37 "$dsoftbus_sdk_path/transmission/session/cpp/src/session_ipc_adapter_virtual.c",36 "$dsoftbus_sdk_path/transmission/session/cpp/src/session_ipc_adapter_virtual.c",
@@ -38,8 +38,10 @@ int32_t ClientTransChannelSendMessage(int32_t channelId, int32_t type, const voi
38int32_t ClientTransChannelSendStream(int32_t channelId, int32_t type, const StreamData *data,38int32_t ClientTransChannelSendStream(int32_t channelId, int32_t type, const StreamData *data,
39 const StreamData *ext, const StreamFrameInfo *param);39 const StreamData *ext, const StreamFrameInfo *param);
40 40 
41+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
41int32_t ClientTransChannelSendFile(int32_t channelId, int32_t type, const char *sFileList[],42int32_t ClientTransChannelSendFile(int32_t channelId, int32_t type, const char *sFileList[],
42 const char *dFileList[], uint32_t fileCnt);43 const char *dFileList[], uint32_t fileCnt);
44+#endif
43 45 
44void DeleteFileListener(const char *sessionName);46void DeleteFileListener(const char *sessionName);
45 47 
@@ -202,6 +202,7 @@ int32_t ClientTransChannelSendStream(int32_t channelId, int32_t channelType, con
202 return ret;202 return ret;
203}203}
204 204 
205+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
205int32_t ClientTransChannelSendFile(int32_t channelId, int32_t channelType, const char *sFileList[],206int32_t ClientTransChannelSendFile(int32_t channelId, int32_t channelType, const char *sFileList[],
206 const char *dFileList[], uint32_t fileCnt)207 const char *dFileList[], uint32_t fileCnt)
207{208{
@@ -211,14 +212,20 @@ int32_t ClientTransChannelSendFile(int32_t channelId, int32_t channelType, const
211 ret = TransUdpChannelSendFile(channelId, sFileList, dFileList, fileCnt);212 ret = TransUdpChannelSendFile(channelId, sFileList, dFileList, fileCnt);
212 break;213 break;
213 case CHANNEL_TYPE_PROXY:214 case CHANNEL_TYPE_PROXY:
215+#ifdef DSOFTBUS_FEATURE_TRANS_PROXY_FILE
214 ret = TransProxyChannelSendFile(channelId, sFileList, dFileList, fileCnt);216 ret = TransProxyChannelSendFile(channelId, sFileList, dFileList, fileCnt);
215 break;217 break;
218+#else
219+ TRANS_LOGW(TRANS_FILE, "Proxy SendFile not support, trans_proxy_file feature disabled");
220+ return SOFTBUS_FUNC_NOT_SUPPORT;
221+#endif
216 default:222 default:
217 TRANS_LOGE(TRANS_FILE, "unsupport channelType=%{public}d.", channelType);223 TRANS_LOGE(TRANS_FILE, "unsupport channelType=%{public}d.", channelType);
218 return SOFTBUS_TRANS_CHANNEL_TYPE_INVALID;224 return SOFTBUS_TRANS_CHANNEL_TYPE_INVALID;
219 }225 }
220 return ret;226 return ret;
221}227}
228+#endif
222 229 
223void DeleteFileListener(const char *sessionName)230void DeleteFileListener(const char *sessionName)
224{231{
@@ -161,8 +161,6 @@ int32_t ClinetTransProxyFileManagerInit(void);
161void ClinetTransProxyFileManagerDeinit(void);161void ClinetTransProxyFileManagerDeinit(void);
162void ClientDeleteRecvFileList(int32_t sessionId);162void ClientDeleteRecvFileList(int32_t sessionId);
163 163 
164-int32_t ProxyChannelSendFile(int32_t channelId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt);
165-int32_t ProcessRecvFileFrameData(int32_t sessionId, int32_t channelId, const FileFrame *oneFrame);
166#ifdef __cplusplus164#ifdef __cplusplus
167}165}
168#endif166#endif
@@ -993,7 +993,8 @@ static int32_t HandleFileSendingProcess(
993 return ret;993 return ret;
994}994}
995 995 
996-int32_t ProxyChannelSendFile(int32_t channelId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)996+static int32_t ProxyChannelSendFile(
997+ int32_t channelId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)
997{998{
998 TRANS_LOGI(TRANS_FILE, "proxy send file trans start");999 TRANS_LOGI(TRANS_FILE, "proxy send file trans start");
999 if (fileCnt == 0 || fileCnt > MAX_SEND_FILE_NUM) {1000 if (fileCnt == 0 || fileCnt > MAX_SEND_FILE_NUM) {
@@ -1902,20 +1903,10 @@ static int32_t CheckFrameLength(int32_t channelId, uint32_t frameLength, int32_t
1902 return frameLength > *packetSize ? SOFTBUS_INVALID_PARAM : SOFTBUS_OK;1903 return frameLength > *packetSize ? SOFTBUS_INVALID_PARAM : SOFTBUS_OK;
1903}1904}
1904 1905 
1905-int32_t ProcessRecvFileFrameData(int32_t sessionId, int32_t channelId, const FileFrame *oneFrame)1906+static int32_t ProcessFileFrameByType(
1907+ int32_t sessionId, int32_t channelId, const FileFrame *oneFrame, int32_t osType, uint32_t packetSize)
1906{1908{
1907- if (oneFrame == NULL) {1909+ int32_t ret = SOFTBUS_FILE_ERR;
1908- TRANS_LOGE(TRANS_FILE, "invalid param.");
1909- return SOFTBUS_INVALID_PARAM;
1910- }
1911- int32_t osType = OHOS_TYPE_UNKNOWN;
1912- uint32_t packetSize;
1913- int32_t ret = ClientTransProxyGetOsTypeByChannelId(channelId, &osType);
1914- ret = CheckFrameLength(channelId, oneFrame->frameLength, osType, &packetSize);
1915- if (ret != SOFTBUS_OK) {
1916- TRANS_LOGE(TRANS_FILE, "frameLength is invalid sessionId=%{public}d, osType=%{public}d", sessionId, osType);
1917- return ret;
1918- }
1919 switch (oneFrame->frameType) {1910 switch (oneFrame->frameType) {
1920 case TRANS_SESSION_FILE_FIRST_FRAME:1911 case TRANS_SESSION_FILE_FIRST_FRAME:
1921 ret = CreateFileFromFrame(sessionId, channelId, oneFrame, osType, packetSize);1912 ret = CreateFileFromFrame(sessionId, channelId, oneFrame, osType, packetSize);
@@ -1927,8 +1918,8 @@ int32_t ProcessRecvFileFrameData(int32_t sessionId, int32_t channelId, const Fil
1927 case TRANS_SESSION_FILE_LAST_FRAME:1918 case TRANS_SESSION_FILE_LAST_FRAME:
1928 ret = WriteFrameToFile(sessionId, oneFrame);1919 ret = WriteFrameToFile(sessionId, oneFrame);
1929 if (ret != SOFTBUS_OK) {1920 if (ret != SOFTBUS_OK) {
1930- TRANS_LOGE(TRANS_FILE, "write frame fail ret=%{public}d, sessionId=%{public}d, osType=%{public}d",1921+ TRANS_LOGE(TRANS_FILE, "write frame fail ret=%{public}d, sessionId=%{public}d, osType=%{public}d", ret,
1931- ret, sessionId, osType);1922+ sessionId, osType);
1932 }1923 }
1933 break;1924 break;
1934 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:1925 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:
@@ -1955,6 +1946,23 @@ int32_t ProcessRecvFileFrameData(int32_t sessionId, int32_t channelId, const Fil
1955 return ret;1946 return ret;
1956}1947}
1957 1948 
1949+static int32_t ProcessRecvFileFrameData(int32_t sessionId, int32_t channelId, const FileFrame *oneFrame)
1950+{
1951+ if (oneFrame == NULL) {
1952+ TRANS_LOGE(TRANS_FILE, "invalid param.");
1953+ return SOFTBUS_INVALID_PARAM;
1954+ }
1955+ int32_t osType = OHOS_TYPE_UNKNOWN;
1956+ uint32_t packetSize;
1957+ int32_t ret = ClientTransProxyGetOsTypeByChannelId(channelId, &osType);
1958+ ret = CheckFrameLength(channelId, oneFrame->frameLength, osType, &packetSize);
1959+ if (ret != SOFTBUS_OK) {
1960+ TRANS_LOGE(TRANS_FILE, "frameLength is invalid sessionId=%{public}d, osType=%{public}d", sessionId, osType);
1961+ return ret;
1962+ }
1963+ return ProcessFileFrameByType(sessionId, channelId, oneFrame, osType, packetSize);
1964+}
1965+ 
1958int32_t ProcessFileFrameData(int32_t sessionId, int32_t channelId, const char *data, uint32_t len, int32_t type)1966int32_t ProcessFileFrameData(int32_t sessionId, int32_t channelId, const char *data, uint32_t len, int32_t type)
1959{1967{
1960 FileFrame oneFrame;1968 FileFrame oneFrame;
@@ -540,6 +540,8 @@ static int32_t ClientTransProxyBytesNotifySession(int32_t channelId, const DataH
540 case TRANS_SESSION_FILE_RESULT_FRAME:540 case TRANS_SESSION_FILE_RESULT_FRAME:
541 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:541 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:
542 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:542 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:
543+ TRANS_LOGW(TRANS_SDK, "file frame not support, flags=%{public}d", flags);
544+ return SOFTBUS_FUNC_NOT_SUPPORT;
543 case TRANS_SESSION_ASYNC_MESSAGE:545 case TRANS_SESSION_ASYNC_MESSAGE:
544 return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);546 return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);
545 default:547 default:
@@ -558,6 +560,7 @@ static int32_t ClientTransProxyNotifySession(
558 case TRANS_SESSION_ACK:560 case TRANS_SESSION_ACK:
559 return ClientTransProxyProcSendMsgAck(channelId, data, len, seq, 0);561 return ClientTransProxyProcSendMsgAck(channelId, data, len, seq, 0);
560 case TRANS_SESSION_BYTES:562 case TRANS_SESSION_BYTES:
563+ return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);
561 case TRANS_SESSION_FILE_FIRST_FRAME:564 case TRANS_SESSION_FILE_FIRST_FRAME:
562 case TRANS_SESSION_FILE_ONGOINE_FRAME:565 case TRANS_SESSION_FILE_ONGOINE_FRAME:
563 case TRANS_SESSION_FILE_LAST_FRAME:566 case TRANS_SESSION_FILE_LAST_FRAME:
@@ -567,6 +570,12 @@ static int32_t ClientTransProxyNotifySession(
567 case TRANS_SESSION_FILE_RESULT_FRAME:570 case TRANS_SESSION_FILE_RESULT_FRAME:
568 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:571 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:
569 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:572 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:
573+#ifdef DSOFTBUS_FEATURE_TRANS_PROXY_FILE
574+ return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);
575+#else
576+ TRANS_LOGW(TRANS_SDK, "file frame not support, flags=%{public}d", flags);
577+ return SOFTBUS_FUNC_NOT_SUPPORT;
578+#endif
570 case TRANS_SESSION_ASYNC_MESSAGE:579 case TRANS_SESSION_ASYNC_MESSAGE:
571 return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);580 return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);
572 default:581 default:
@@ -1001,6 +1010,7 @@ static int32_t ClientTransProxyNotifyD2D(
1001 case TRANS_SESSION_ACK:1010 case TRANS_SESSION_ACK:
1002 return ClientTransProxyProcD2DAck(channelId, data, len, dataSeq);1011 return ClientTransProxyProcD2DAck(channelId, data, len, dataSeq);
1003 case TRANS_SESSION_BYTES:1012 case TRANS_SESSION_BYTES:
1013+ return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);
1004 case TRANS_SESSION_FILE_FIRST_FRAME:1014 case TRANS_SESSION_FILE_FIRST_FRAME:
1005 case TRANS_SESSION_FILE_ONGOINE_FRAME:1015 case TRANS_SESSION_FILE_ONGOINE_FRAME:
1006 case TRANS_SESSION_FILE_LAST_FRAME:1016 case TRANS_SESSION_FILE_LAST_FRAME:
@@ -1010,6 +1020,8 @@ static int32_t ClientTransProxyNotifyD2D(
1010 case TRANS_SESSION_FILE_RESULT_FRAME:1020 case TRANS_SESSION_FILE_RESULT_FRAME:
1011 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:1021 case TRANS_SESSION_FILE_ACK_REQUEST_SENT:
1012 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:1022 case TRANS_SESSION_FILE_ACK_RESPONSE_SENT:
1023+ TRANS_LOGW(TRANS_SDK, "file frame not support, flags=%{public}d", flags);
1024+ return SOFTBUS_FUNC_NOT_SUPPORT;
1013 case TRANS_SESSION_ASYNC_MESSAGE:1025 case TRANS_SESSION_ASYNC_MESSAGE:
1014 return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);1026 return g_sessionCb.OnDataReceived(channelId, CHANNEL_TYPE_PROXY, data, len, flags);
1015 default:1027 default:
@@ -0,0 +1,249 @@
1+/*
2+ * Copyright (c) 2026 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 "client_trans_proxy_file_manager.h"
17+#include "client_trans_proxy_manager.h"
18+#include "client_trans_pending.h"
19+ 
20+#include "softbus_error_code.h"
21+ 
22+int32_t ClientTransProxyInit(const IClientSessionCallBack *cb)
23+{
24+ (void)cb;
25+ return SOFTBUS_OK;
26+}
27+ 
28+void ClientTransProxyDeinit(void)
29+{
30+ return;
31+}
32+ 
33+int32_t ClientTransProxyGetInfoByChannelId(int32_t channelId, ProxyChannelInfoDetail *info)
34+{
35+ (void)channelId;
36+ (void)info;
37+ return SOFTBUS_FUNC_NOT_SUPPORT;
38+}
39+ 
40+int32_t ClientTransProxyGetOsTypeByChannelId(int32_t channelId, int32_t *osType)
41+{
42+ (void)channelId;
43+ if (osType != NULL) {
44+ *osType = 0;
45+ }
46+ return SOFTBUS_FUNC_NOT_SUPPORT;
47+}
48+ 
49+int32_t ClientTransProxyGetLinkTypeByChannelId(int32_t channelId, int32_t *linkType)
50+{
51+ (void)channelId;
52+ if (linkType != NULL) {
53+ *linkType = 0;
54+ }
55+ return SOFTBUS_OK;
56+}
57+ 
58+int32_t ClientTransProxyOnChannelOpened(
59+ const char *sessionName, const ChannelInfo *channel, SocketAccessInfo *accessInfo)
60+{
61+ (void)sessionName;
62+ (void)channel;
63+ (void)accessInfo;
64+ return SOFTBUS_FUNC_NOT_SUPPORT;
65+}
66+ 
67+int32_t ClientTransProxyOnChannelClosed(int32_t channelId, ShutdownReason reason)
68+{
69+ (void)channelId;
70+ (void)reason;
71+ return SOFTBUS_FUNC_NOT_SUPPORT;
72+}
73+ 
74+int32_t ClientTransProxyOnChannelOpenFailed(int32_t channelId, int32_t errCode)
75+{
76+ (void)channelId;
77+ (void)errCode;
78+ return SOFTBUS_FUNC_NOT_SUPPORT;
79+}
80+ 
81+int32_t ClientTransProxyOnDataReceived(int32_t channelId, const void *data, uint32_t len, SessionPktType type)
82+{
83+ (void)channelId;
84+ (void)data;
85+ (void)len;
86+ (void)type;
87+ return SOFTBUS_FUNC_NOT_SUPPORT;
88+}
89+ 
90+void ClientTransProxyCloseChannel(int32_t channelId)
91+{
92+ (void)channelId;
93+ return;
94+}
95+ 
96+int32_t TransProxyChannelSendBytes(int32_t channelId, const void *data, uint32_t len, bool neeedAck)
97+{
98+ (void)channelId;
99+ (void)data;
100+ (void)len;
101+ (void)neeedAck;
102+ return SOFTBUS_FUNC_NOT_SUPPORT;
103+}
104+ 
105+int32_t TransProxyChannelAsyncSendBytes(int32_t channelId, const void *data, uint32_t len, uint32_t dataSeq)
106+{
107+ (void)channelId;
108+ (void)data;
109+ (void)len;
110+ (void)dataSeq;
111+ return SOFTBUS_FUNC_NOT_SUPPORT;
112+}
113+ 
114+int32_t TransProxyChannelSendMessage(int32_t channelId, const void *data, uint32_t len)
115+{
116+ (void)channelId;
117+ (void)data;
118+ (void)len;
119+ return SOFTBUS_FUNC_NOT_SUPPORT;
120+}
121+ 
122+int32_t TransProxyChannelAsyncSendMessage(int32_t channelId, const void *data, uint32_t len, uint16_t dataSeq)
123+{
124+ (void)channelId;
125+ (void)data;
126+ (void)len;
127+ (void)dataSeq;
128+ return SOFTBUS_FUNC_NOT_SUPPORT;
129+}
130+ 
131+int32_t ClientTransProxyOnChannelBind(int32_t channelId, int32_t channelType)
132+{
133+ (void)channelId;
134+ (void)channelType;
135+ return SOFTBUS_FUNC_NOT_SUPPORT;
136+}
137+ 
138+int32_t InitPendingPacket(void)
139+{
140+ return SOFTBUS_OK;
141+}
142+ 
143+void DestroyPendingPacket(void)
144+{
145+ return;
146+}
147+ 
148+int32_t CreatePendingPacket(uint32_t id, uint64_t seq)
149+{
150+ (void)id;
151+ (void)seq;
152+ return SOFTBUS_FUNC_NOT_SUPPORT;
153+}
154+ 
155+void DeletePendingPacket(uint32_t id, uint64_t seq)
156+{
157+ (void)id;
158+ (void)seq;
159+ return;
160+}
161+ 
162+int32_t GetPendingPacketData(uint32_t id, uint64_t seq, uint32_t waitMillis, bool isDelete, TransPendData *data)
163+{
164+ (void)id;
165+ (void)seq;
166+ (void)waitMillis;
167+ (void)isDelete;
168+ (void)data;
169+ return SOFTBUS_FUNC_NOT_SUPPORT;
170+}
171+ 
172+int32_t SetPendingPacketData(uint32_t id, uint64_t seq, const TransPendData *data)
173+{
174+ (void)id;
175+ (void)seq;
176+ (void)data;
177+ return SOFTBUS_FUNC_NOT_SUPPORT;
178+}
179+ 
180+int32_t ClientTransProxyAddChannelInfo(ClientProxyChannelInfo *info)
181+{
182+ (void)info;
183+ return SOFTBUS_FUNC_NOT_SUPPORT;
184+}
185+ 
186+int32_t ClientTransProxyDelChannelInfo(int32_t channelId)
187+{
188+ (void)channelId;
189+ return SOFTBUS_FUNC_NOT_SUPPORT;
190+}
191+ 
192+int32_t ClientTransProxyPackAndSendData(int32_t channelId, const void *data, uint32_t len,
193+ ProxyChannelInfoDetail *info, SessionPktType pktType)
194+{
195+ (void)channelId;
196+ (void)data;
197+ (void)len;
198+ (void)info;
199+ (void)pktType;
200+ return SOFTBUS_FUNC_NOT_SUPPORT;
201+}
202+ 
203+int32_t TransProxyAsyncPackAndSendData(int32_t channelId, const void *data, uint32_t len, uint32_t dataSeq,
204+ SessionPktType pktType)
205+{
206+ (void)channelId;
207+ (void)data;
208+ (void)len;
209+ (void)dataSeq;
210+ (void)pktType;
211+ return SOFTBUS_FUNC_NOT_SUPPORT;
212+}
213+ 
214+int32_t TransProxyChannelSendFile(int32_t channelId, const char *sFileList[], const char *dFileList[],
215+ uint32_t fileCnt)
216+{
217+ (void)channelId;
218+ (void)sFileList;
219+ (void)dFileList;
220+ (void)fileCnt;
221+ return SOFTBUS_FUNC_NOT_SUPPORT;
222+}
223+ 
224+int32_t ProcessFileFrameData(int32_t sessionId, int32_t channelId, const char *data, uint32_t len, int32_t type)
225+{
226+ (void)sessionId;
227+ (void)channelId;
228+ (void)data;
229+ (void)len;
230+ (void)type;
231+ return SOFTBUS_FUNC_NOT_SUPPORT;
232+}
233+ 
234+int32_t TransProxyAsyncPackAndSendMessage(
235+ int32_t channelId, const void *data, uint32_t len, uint16_t dataSeq, SessionPktType pktType)
236+{
237+ (void)channelId;
238+ (void)data;
239+ (void)len;
240+ (void)dataSeq;
241+ (void)pktType;
242+ return SOFTBUS_FUNC_NOT_SUPPORT;
243+}
244+ 
245+void ClientDeleteRecvFileList(int32_t sessionId)
246+{
247+ (void)sessionId;
248+ return;
249+}
@@ -13,19 +13,24 @@
13 13 
14import("../../../../dsoftbus.gni")14import("../../../../dsoftbus.gni")
15 15 
16-trans_proxy_channel_sdk_src = [16+if (dsoftbus_feature_trans_proxy_channel) {
17- "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_manager.c",17+ trans_proxy_channel_sdk_src = [
18- "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_pending.c",18+ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_manager.c",
19-]19+ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_pending.c",
20- 
21-if (dsoftbus_feature_trans_proxy_file == true) {
22- trans_proxy_channel_sdk_src += [
23- "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_common.c",
24- "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_manager.c",
25- "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_helper.c",
26 ]20 ]
21+ if (dsoftbus_feature_trans_file && dsoftbus_feature_trans_proxy_file) {
22+ trans_proxy_channel_sdk_src += [
23+ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_common.c",
24+ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_manager.c",
25+ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_helper.c",
26+ ]
27+ } else {
28+ trans_proxy_channel_sdk_src += [ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_manager_virtual.c" ]
29+ }
27} else {30} else {
28- trans_proxy_channel_sdk_src += [ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_file_manager_virtual.c" ]31+ trans_proxy_channel_sdk_src = [
32+ "$dsoftbus_sdk_path/transmission/trans_channel/proxy/src/client_trans_proxy_virtual.c",
33+ ]
29}34}
30 35 
31trans_proxy_channel_sdk_inc = [36trans_proxy_channel_sdk_inc = [
@@ -21,7 +21,9 @@
21#include "client_trans_socket_manager.h"21#include "client_trans_socket_manager.h"
22#include "client_trans_stream.h"22#include "client_trans_stream.h"
23#include "g_enhance_sdk_func.h"23#include "g_enhance_sdk_func.h"
24+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
24#include "nstackx_dfile.h"25#include "nstackx_dfile.h"
26+#endif
25#include "securec.h"27#include "securec.h"
26#include "softbus_access_token_adapter.h"28#include "softbus_access_token_adapter.h"
27#include "softbus_adapter_mem.h"29#include "softbus_adapter_mem.h"
@@ -204,7 +206,12 @@ static int32_t OnUdpChannelOpened(int32_t channelId, SocketAccessInfo *accessInf
204 type = TYPE_STREAM;206 type = TYPE_STREAM;
205 break;207 break;
206 case BUSINESS_TYPE_FILE:208 case BUSINESS_TYPE_FILE:
209+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
207 type = TYPE_FILE;210 type = TYPE_FILE;
211+#else
212+ TRANS_LOGE(TRANS_SDK, "file channel not support, trans_udp_file feature disabled");
213+ return SOFTBUS_FUNC_NOT_SUPPORT;
214+#endif
208 break;215 break;
209 default:216 default:
210 TRANS_LOGE(TRANS_SDK, "unsupport businessType=%{public}d.", channel.businessType);217 TRANS_LOGE(TRANS_SDK, "unsupport businessType=%{public}d.", channel.businessType);
@@ -376,6 +383,7 @@ int32_t TransOnUdpChannelOpened(
376 }383 }
377 break;384 break;
378 case BUSINESS_TYPE_FILE:385 case BUSINESS_TYPE_FILE:
386+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
379 ret = TransOnFileChannelOpened(sessionName, channel, udpPort, accessInfo);387 ret = TransOnFileChannelOpened(sessionName, channel, udpPort, accessInfo);
380 if (ret < SOFTBUS_OK) {388 if (ret < SOFTBUS_OK) {
381 (void)TransAddSecondPathFail(channel->channelId);389 (void)TransAddSecondPathFail(channel->channelId);
@@ -389,6 +397,10 @@ int32_t TransOnUdpChannelOpened(
389 return ret;397 return ret;
390 }398 }
391 ret = SOFTBUS_OK;399 ret = SOFTBUS_OK;
400+#else
401+ TRANS_LOGE(TRANS_SDK, "file channel not support, trans_udp_file feature disabled");
402+ ret = SOFTBUS_FUNC_NOT_SUPPORT;
403+#endif
392 break;404 break;
393 default:405 default:
394 (void)TransDeleteUdpChannel(channel->channelId);406 (void)TransDeleteUdpChannel(channel->channelId);
@@ -408,7 +420,11 @@ static int32_t TransDeleteBusinnessChannel(UdpChannel *channel)
408 }420 }
409 break;421 break;
410 case BUSINESS_TYPE_FILE:422 case BUSINESS_TYPE_FILE:
423+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
411 TransCloseFileChannel(channel->dfileId);424 TransCloseFileChannel(channel->dfileId);
425+#else
426+ TRANS_LOGW(TRANS_SDK, "file channel close skipped, trans_udp_file feature disabled");
427+#endif
412 break;428 break;
413 default:429 default:
414 TRANS_LOGE(TRANS_SDK, "unsupport businessType=%{public}d.", channel->businessType);430 TRANS_LOGE(TRANS_SDK, "unsupport businessType=%{public}d.", channel->businessType);
@@ -537,12 +553,14 @@ static int32_t CloseUdpChannel(int32_t channelId, ShutdownReason reason)
537 return SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED;553 return SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED;
538 }554 }
539 if (channel.businessType == BUSINESS_TYPE_FILE) {555 if (channel.businessType == BUSINESS_TYPE_FILE) {
556+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
540 TRANS_LOGD(TRANS_SDK, "close udp channel get file list start");557 TRANS_LOGD(TRANS_SDK, "close udp channel get file list start");
541 int32_t ret = NSTACKX_DFileSessionGetFileList(channel.dfileId);558 int32_t ret = NSTACKX_DFileSessionGetFileList(channel.dfileId);
542 if (ret != SOFTBUS_OK) {559 if (ret != SOFTBUS_OK) {
543 TRANS_LOGE(TRANS_SDK, "close udp channel to get file list failed. channelId=%{public}d, ret=%{public}d",560 TRANS_LOGE(TRANS_SDK, "close udp channel to get file list failed. channelId=%{public}d, ret=%{public}d",
544 channelId, ret);561 channelId, ret);
545 }562 }
563+#endif
546 }564 }
547 return CloseUdpChannelProc(&channel, channelId, reason);565 return CloseUdpChannelProc(&channel, channelId, reason);
548}566}
@@ -573,7 +591,9 @@ static int32_t CloseReserveUdpChannel(int32_t channelId, ShutdownReason reason,
573 }591 }
574 if (delSecondPath) {592 if (delSecondPath) {
575 TRANS_LOGI(TRANS_SDK, "dfileId=%{public}d remove second path", channel.dfileId);593 TRANS_LOGI(TRANS_SDK, "dfileId=%{public}d remove second path", channel.dfileId);
594+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
576 TransCloseReserveFileChannel(channel.dfileId, &(channel.addr), channel.addrLen, routeType);595 TransCloseReserveFileChannel(channel.dfileId, &(channel.addr), channel.addrLen, routeType);
596+#endif
577 }597 }
578 return SOFTBUS_OK;598 return SOFTBUS_OK;
579}599}
@@ -802,7 +822,9 @@ int32_t ClientTransUdpMgrInit(IClientSessionCallBack *callback)
802 TRANS_LOGE(TRANS_INIT, "trans udp pending init failed.");822 TRANS_LOGE(TRANS_INIT, "trans udp pending init failed.");
803 return SOFTBUS_TRANS_SERVER_INIT_FAILED;823 return SOFTBUS_TRANS_SERVER_INIT_FAILED;
804 }824 }
825+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
805 NSTACKX_DFileRegisterLogCallback(NstackxLogInnerImpl);826 NSTACKX_DFileRegisterLogCallback(NstackxLogInnerImpl);
827+#endif
806 RegisterFileCb(&g_udpChannelCb);828 RegisterFileCb(&g_udpChannelCb);
807 g_udpChannelMgr = CreateSoftBusList();829 g_udpChannelMgr = CreateSoftBusList();
808 if (g_udpChannelMgr == NULL) {830 if (g_udpChannelMgr == NULL) {
@@ -938,6 +960,7 @@ static int32_t TransSendLimitChangeDataToCore(int32_t channelId, uint8_t tos, in
938 960 
939int32_t TransLimitChange(int32_t channelId, uint8_t tos)961int32_t TransLimitChange(int32_t channelId, uint8_t tos)
940{962{
963+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
941 if (tos != FILE_PRIORITY_BK && tos != FILE_PRIORITY_BE) {964 if (tos != FILE_PRIORITY_BK && tos != FILE_PRIORITY_BE) {
942 TRANS_LOGE(TRANS_FILE, "invalid ip tos");965 TRANS_LOGE(TRANS_FILE, "invalid ip tos");
943 return SOFTBUS_INVALID_PARAM;966 return SOFTBUS_INVALID_PARAM;
@@ -975,6 +998,10 @@ int32_t TransLimitChange(int32_t channelId, uint8_t tos)
975 int32_t setTosResult = NSTACKX_DFileSetSessionOpt(channel.dfileId, &dfileOpt);998 int32_t setTosResult = NSTACKX_DFileSetSessionOpt(channel.dfileId, &dfileOpt);
976 ret = TransSendLimitChangeDataToCore(channelId, tos, setTosResult);999 ret = TransSendLimitChangeDataToCore(channelId, tos, setTosResult);
977 return ret;1000 return ret;
1001+#else
1002+ TRANS_LOGE(TRANS_SDK, "file channel not support, trans_udp_file feature disabled");
1003+ return SOFTBUS_FUNC_NOT_SUPPORT;
1004+#endif
978}1005}
979 1006 
980int32_t TransUdpOnCloseAckReceived(int32_t channelId)1007int32_t TransUdpOnCloseAckReceived(int32_t channelId)
@@ -985,6 +1012,7 @@ int32_t TransUdpOnCloseAckReceived(int32_t channelId)
985// trigger file event FILE_EVENT_TRANS_STATUS when link down1012// trigger file event FILE_EVENT_TRANS_STATUS when link down
986int32_t ClientEmitFileEvent(int32_t channelId)1013int32_t ClientEmitFileEvent(int32_t channelId)
987{1014{
1015+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
988 UdpChannel channel;1016 UdpChannel channel;
989 (void)memset_s(&channel, sizeof(UdpChannel), 0, sizeof(UdpChannel));1017 (void)memset_s(&channel, sizeof(UdpChannel), 0, sizeof(UdpChannel));
990 int32_t ret = TransGetUdpChannel(channelId, &channel);1018 int32_t ret = TransGetUdpChannel(channelId, &channel);
@@ -1001,6 +1029,10 @@ int32_t ClientEmitFileEvent(int32_t channelId)
1001 }1029 }
1002 }1030 }
1003 return ret;1031 return ret;
1032+#else
1033+ TRANS_LOGE(TRANS_SDK, "file channel not support, trans_udp_file feature disabled");
1034+ return SOFTBUS_FUNC_NOT_SUPPORT;
1035+#endif
1004}1036}
1005 1037 
1006int32_t TransSetUdpChannelSessionId(int32_t channelId, int32_t sessionId)1038int32_t TransSetUdpChannelSessionId(int32_t channelId, int32_t sessionId)
@@ -20,7 +20,7 @@ trans_file_sdk_inc = [ "$dsoftbus_file_sdk_path/include" ]
20trans_file_sdk_src = []20trans_file_sdk_src = []
21trans_file_sdk_deps = []21trans_file_sdk_deps = []
22 22 
23-if (dsoftbus_feature_trans_udp_file == true && dsoftbus_feature_dfile == true) {23+if (dsoftbus_feature_trans_file && dsoftbus_feature_trans_udp_file && dsoftbus_feature_dfile) {
24 trans_file_sdk_src += [24 trans_file_sdk_src += [
25 "$dsoftbus_file_sdk_path/src/client_trans_file.c",25 "$dsoftbus_file_sdk_path/src/client_trans_file.c",
26 "$dsoftbus_file_sdk_path/src/client_trans_file_listener.c",26 "$dsoftbus_file_sdk_path/src/client_trans_file_listener.c",
@@ -44,4 +44,20 @@ if (dsoftbus_feature_trans_udp_file == true && dsoftbus_feature_dfile == true) {
44} else {44} else {
45 trans_file_sdk_src +=45 trans_file_sdk_src +=
46 [ "$dsoftbus_file_sdk_path/src/client_trans_file_virtual.c" ]46 [ "$dsoftbus_file_sdk_path/src/client_trans_file_virtual.c" ]
47+ if (dsoftbus_feature_trans_udp_file && dsoftbus_feature_dfile) {
48+ if (!defined(global_parts_info) ||
49+ defined(global_parts_info.communication_dsoftbus_service_ext)) {
50+ trans_file_sdk_inc += [
51+ "$dsoftbus_root_path/components/nstackx_enhanced/nstackx_core/dfile/interface",
52+ "$dsoftbus_root_path/components/nstackx_enhanced/nstackx_util/interface",
53+ ]
54+ trans_file_sdk_deps += [ "$dsoftbus_root_path/components/nstackx_enhanced/nstackx_core/dfile:nstackx_dfile" ]
55+ } else {
56+ trans_file_sdk_inc += [
57+ "$dsoftbus_root_path/components/nstackx/nstackx_core/dfile/interface",
58+ "$dsoftbus_root_path/components/nstackx/nstackx_util/interface",
59+ ]
60+ trans_file_sdk_deps += [ "$dsoftbus_root_path/components/nstackx/nstackx_core/dfile:nstackx_dfile.open" ]
61+ }
62+ }
47}63}
@@ -87,5 +87,20 @@ int32_t TransSetSocketFileListener(const char *sessionName, SocketFileCallbackFu
87 (void)sessionName;87 (void)sessionName;
88 (void)fileCallback;88 (void)fileCallback;
89 (void)isReceiver;89 (void)isReceiver;
90+ return SOFTBUS_OK;
91+}
92+ 
93+void TransCloseReserveFileChannel(int32_t dfileId, struct sockaddr_storage *addr, socklen_t addrLen, int32_t type)
94+{
95+ (void)dfileId;
96+ (void)addr;
97+ (void)addrLen;
98+ (void)type;
99+}
100+ 
101+int32_t NotifyTransLimitChanged(int32_t channelId, uint8_t tos)
102+{
103+ (void)channelId;
104+ (void)tos;
90 return SOFTBUS_FUNC_NOT_SUPPORT;105 return SOFTBUS_FUNC_NOT_SUPPORT;
91}106}
@@ -60,6 +60,11 @@ ohos_fuzztest("SoftBusProxyChannelManagerExtFuzzTest") {
60 "-fno-omit-frame-pointer",60 "-fno-omit-frame-pointer",
61 ]61 ]
62 62 
63+ defines = []
64+ if (dsoftbus_feature_trans_proxy_channel) {
65+ defines += [ "DSOFTBUS_FEATURE_PROXY_CHANNEL" ]
66+ }
67+ 
63 sources = [ "softbusproxychannelmanagerext_fuzzer.cpp" ]68 sources = [ "softbusproxychannelmanagerext_fuzzer.cpp" ]
64 69 
65 deps = [70 deps = [
@@ -146,6 +146,7 @@ void TransProxyGetAppInfoTypeTest(FuzzedDataProvider &provider)
146 (void)TransProxyGetAppInfoType(myId, identity, &appType);146 (void)TransProxyGetAppInfoType(myId, identity, &appType);
147}147}
148 148 
149+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
149void TransPagingUpdatePagingChannelInfoTest(FuzzedDataProvider &provider)150void TransPagingUpdatePagingChannelInfoTest(FuzzedDataProvider &provider)
150{151{
151 ProxyChannelInfo *info = reinterpret_cast<ProxyChannelInfo *>(SoftBusCalloc(sizeof(ProxyChannelInfo)));152 ProxyChannelInfo *info = reinterpret_cast<ProxyChannelInfo *>(SoftBusCalloc(sizeof(ProxyChannelInfo)));
@@ -208,6 +209,7 @@ void TransPagingBadKeyRetryTest(FuzzedDataProvider &provider)
208 (void)memset_s(&tmpInfo, sizeof(ProxyChannelInfo), 0, sizeof(ProxyChannelInfo));209 (void)memset_s(&tmpInfo, sizeof(ProxyChannelInfo), 0, sizeof(ProxyChannelInfo));
209 (void)TransProxyDelByChannelId(channelId, &tmpInfo);210 (void)TransProxyDelByChannelId(channelId, &tmpInfo);
210}211}
212+#endif
211 213 
212void TransProxyDelChanByChanIdTest(FuzzedDataProvider &provider)214void TransProxyDelChanByChanIdTest(FuzzedDataProvider &provider)
213{215{
@@ -293,6 +295,7 @@ void TransProxyProcessErrMsgTest(FuzzedDataProvider &provider)
293 (void)TransProxyDelChanByChanId(info->channelId);295 (void)TransProxyDelChanByChanId(info->channelId);
294}296}
295 297 
298+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
296void TransPagingHandshakeUnPackErrMsgTest(FuzzedDataProvider &provider)299void TransPagingHandshakeUnPackErrMsgTest(FuzzedDataProvider &provider)
297{300{
298 ProxyChannelInfo *info = reinterpret_cast<ProxyChannelInfo *>(SoftBusCalloc(sizeof(ProxyChannelInfo)));301 ProxyChannelInfo *info = reinterpret_cast<ProxyChannelInfo *>(SoftBusCalloc(sizeof(ProxyChannelInfo)));
@@ -315,6 +318,7 @@ void TransPagingHandshakeUnPackErrMsgTest(FuzzedDataProvider &provider)
315 }318 }
316 (void)TransProxyDelChanByChanId(info->channelId);319 (void)TransProxyDelChanByChanId(info->channelId);
317}320}
321+#endif
318 322 
319void SelectRouteTypeTest(FuzzedDataProvider &provider)323void SelectRouteTypeTest(FuzzedDataProvider &provider)
320{324{
@@ -491,7 +495,9 @@ void TransProxyCloseChannelByRequestIdTest(FuzzedDataProvider &provider)
491 PagingListenCheckInfo checkInfo;495 PagingListenCheckInfo checkInfo;
492 checkInfo.businessFlag = provider.ConsumeIntegral<uint32_t>();496 checkInfo.businessFlag = provider.ConsumeIntegral<uint32_t>();
493 checkInfo.channelId = provider.ConsumeIntegral<int32_t>();497 checkInfo.channelId = provider.ConsumeIntegral<int32_t>();
498+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
494 (void)TransProxyGetChannelByCheckInfo(&checkInfo, &info1, info->appInfo.isClient);499 (void)TransProxyGetChannelByCheckInfo(&checkInfo, &info1, info->appInfo.isClient);
500+#endif
495 (void)TransProxyGetPrivilegeCloseList(&privilegeCloseList, info->appInfo.callingTokenId, info->appInfo.myData.pid);501 (void)TransProxyGetPrivilegeCloseList(&privilegeCloseList, info->appInfo.callingTokenId, info->appInfo.myData.pid);
496 (void)TransProxyResetReplyCnt(info->channelId);502 (void)TransProxyResetReplyCnt(info->channelId);
497 channelId = provider.ConsumeIntegral<int32_t>();503 channelId = provider.ConsumeIntegral<int32_t>();
@@ -580,13 +586,16 @@ void TransOnGenSuccessTest(FuzzedDataProvider &provider)
580 AppInfo appInfo;586 AppInfo appInfo;
581 (void)memset_s(&appInfo, sizeof(AppInfo), 0, sizeof(AppInfo));587 (void)memset_s(&appInfo, sizeof(AppInfo), 0, sizeof(AppInfo));
582 FillAppInfo(provider, &appInfo);588 FillAppInfo(provider, &appInfo);
583- uint8_t applyKey[MAX_LEN] = { 0 };
584 (void)TransProxyCreateChanInfo(info, info->channelId, &appInfo);589 (void)TransProxyCreateChanInfo(info, info->channelId, &appInfo);
590+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
591+ uint8_t applyKey[MAX_LEN] = { 0 };
585 (void)TransOnGenSuccess(info->authReqId, applyKey, MAX_LEN);592 (void)TransOnGenSuccess(info->authReqId, applyKey, MAX_LEN);
586 (void)TransOnGenFailed(info->authReqId, 0);593 (void)TransOnGenFailed(info->authReqId, 0);
594+#endif
587 (void)TransProxyDelChanByChanId(channelId);595 (void)TransProxyDelChanByChanId(channelId);
588}596}
589 597 
598+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
590void TransPagingResetChanTest(FuzzedDataProvider &provider)599void TransPagingResetChanTest(FuzzedDataProvider &provider)
591{600{
592 ProxyChannelInfo *info = reinterpret_cast<ProxyChannelInfo *>(SoftBusCalloc(sizeof(ProxyChannelInfo)));601 ProxyChannelInfo *info = reinterpret_cast<ProxyChannelInfo *>(SoftBusCalloc(sizeof(ProxyChannelInfo)));
@@ -608,6 +617,7 @@ void TransPagingResetChanTest(FuzzedDataProvider &provider)
608 (void)TransPagingResetChan(&chanInfo);617 (void)TransPagingResetChan(&chanInfo);
609 (void)TransProxyDelChanByChanId(channelId);618 (void)TransProxyDelChanByChanId(channelId);
610}619}
620+#endif
611 621 
612void TransProxyResetChanTest(FuzzedDataProvider &provider)622void TransProxyResetChanTest(FuzzedDataProvider &provider)
613{623{
@@ -819,13 +829,17 @@ extern "C" int32_t LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
819 FuzzedDataProvider provider(data, size);829 FuzzedDataProvider provider(data, size);
820 OHOS::ChanIsEqualTest(provider);830 OHOS::ChanIsEqualTest(provider);
821 OHOS::TransProxyGetAppInfoTypeTest(provider);831 OHOS::TransProxyGetAppInfoTypeTest(provider);
832+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
822 OHOS::TransPagingUpdatePagingChannelInfoTest(provider);833 OHOS::TransPagingUpdatePagingChannelInfoTest(provider);
823 OHOS::TransPagingUpdatePidAndDataTest(provider);834 OHOS::TransPagingUpdatePidAndDataTest(provider);
824 OHOS::TransPagingBadKeyRetryTest(provider);835 OHOS::TransPagingBadKeyRetryTest(provider);
836+#endif
825 OHOS::TransProxyDelChanByChanIdTest(provider);837 OHOS::TransProxyDelChanByChanIdTest(provider);
826 OHOS::TransProxyGetSendMsgChanInfoTest(provider);838 OHOS::TransProxyGetSendMsgChanInfoTest(provider);
827 OHOS::TransProxyProcessErrMsgTest(provider);839 OHOS::TransProxyProcessErrMsgTest(provider);
840+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
828 OHOS::TransPagingHandshakeUnPackErrMsgTest(provider);841 OHOS::TransPagingHandshakeUnPackErrMsgTest(provider);
842+#endif
829 OHOS::SelectRouteTypeTest(provider);843 OHOS::SelectRouteTypeTest(provider);
830 OHOS::CheckAndGenerateSinkSessionKeyTest(provider);844 OHOS::CheckAndGenerateSinkSessionKeyTest(provider);
831 OHOS::TransHandleProxyChannelOpenedTest(provider);845 OHOS::TransHandleProxyChannelOpenedTest(provider);
@@ -836,7 +850,9 @@ extern "C" int32_t LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
836 OHOS::TransDealProxyCheckCollabResultTest(provider);850 OHOS::TransDealProxyCheckCollabResultTest(provider);
837 OHOS::TransProxyTimerItemProcTest(provider);851 OHOS::TransProxyTimerItemProcTest(provider);
838 OHOS::TransOnGenSuccessTest(provider);852 OHOS::TransOnGenSuccessTest(provider);
853+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
839 OHOS::TransPagingResetChanTest(provider);854 OHOS::TransPagingResetChanTest(provider);
855+#endif
840 OHOS::TransProxyResetChanTest(provider);856 OHOS::TransProxyResetChanTest(provider);
841 OHOS::TransProxyGetRecvMsgChanInfoTest(provider);857 OHOS::TransProxyGetRecvMsgChanInfoTest(provider);
842 OHOS::FindConfigTypeTest(provider);858 OHOS::FindConfigTypeTest(provider);
@@ -26,6 +26,7 @@ ohos_fuzztest("SoftBusProxyChannelManagerMockFuzzTest") {
26 fuzz_config_file = "$dsoftbus_root_path/tests/core/transmission/fuzztest/softbusproxychannelmanagermock_fuzzer"26 fuzz_config_file = "$dsoftbus_root_path/tests/core/transmission/fuzztest/softbusproxychannelmanagermock_fuzzer"
27 27 
28 include_dirs = softbus_proxy_channel_manager_ut_include_dirs28 include_dirs = softbus_proxy_channel_manager_ut_include_dirs
29+ defines += softbus_proxy_channel_manager_ut_defines
29 30 
30 cflags = [31 cflags = [
31 "-g",32 "-g",
@@ -188,6 +188,7 @@ ohos_unittest("SoftbusTransProxyMessageTest") {
188ohos_unittest("SoftbusProxyChannelManagerTest") {188ohos_unittest("SoftbusProxyChannelManagerTest") {
189 module_out_path = module_output_path189 module_out_path = module_output_path
190 sources = softbus_proxy_channel_manager_ut_sources190 sources = softbus_proxy_channel_manager_ut_sources
191+ defines += softbus_proxy_channel_manager_ut_defines
191 192 
192 include_dirs = softbus_proxy_channel_manager_ut_include_dirs193 include_dirs = softbus_proxy_channel_manager_ut_include_dirs
193 194 
@@ -697,6 +698,7 @@ ohos_unittest("SoftbusProxyChannelControlPagingTest") {
697 "mock/softbus_proxychannel_control_paging_test_mock.cpp",698 "mock/softbus_proxychannel_control_paging_test_mock.cpp",
698 "softbus_proxychannel_control_paging_test.cpp",699 "softbus_proxychannel_control_paging_test.cpp",
699 ]700 ]
701+ defines += softbus_proxy_channel_manager_ut_defines
700 include_dirs = [702 include_dirs = [
701 "$softbus_adapter_common/include",703 "$softbus_adapter_common/include",
702 "$dsoftbus_core_path/adapter/transmission/include",704 "$dsoftbus_core_path/adapter/transmission/include",
@@ -736,6 +738,7 @@ ohos_unittest("SoftbusProxyChannelManagerPagingTest") {
736 "mock/softbus_proxychannel_manager_paging_test_mock.cpp",738 "mock/softbus_proxychannel_manager_paging_test_mock.cpp",
737 "softbus_proxychannel_manager_paging_test.cpp",739 "softbus_proxychannel_manager_paging_test.cpp",
738 ]740 ]
741+ defines += softbus_proxy_channel_manager_ut_defines
739 include_dirs = [742 include_dirs = [
740 "$softbus_adapter_common/include",743 "$softbus_adapter_common/include",
741 "$dsoftbus_core_path/adapter/transmission/include",744 "$dsoftbus_core_path/adapter/transmission/include",
@@ -788,6 +791,7 @@ ohos_unittest("SoftbusProxyChannelMessagePagingTest") {
788 "mock/softbus_proxychannel_message_paging_test_mock.cpp",791 "mock/softbus_proxychannel_message_paging_test_mock.cpp",
789 "softbus_proxychannel_message_paging_test.cpp",792 "softbus_proxychannel_message_paging_test.cpp",
790 ]793 ]
794+ defines += softbus_proxy_channel_manager_ut_defines
791 include_dirs = [795 include_dirs = [
792 "$softbus_adapter_common/include",796 "$softbus_adapter_common/include",
793 "$dsoftbus_core_path/adapter/transmission/include",797 "$dsoftbus_core_path/adapter/transmission/include",
@@ -840,6 +844,7 @@ ohos_unittest("SoftbusProxyChannelTransceiverPagingTest") {
840 "mock/softbus_proxychannel_transceiver_paging_test_mock.cpp",844 "mock/softbus_proxychannel_transceiver_paging_test_mock.cpp",
841 "softbus_proxychannel_transceiver_paging_test.cpp",845 "softbus_proxychannel_transceiver_paging_test.cpp",
842 ]846 ]
847+ defines += softbus_proxy_channel_manager_ut_defines
843 include_dirs = [848 include_dirs = [
844 "$softbus_adapter_common/include",849 "$softbus_adapter_common/include",
845 "$dsoftbus_core_path/adapter/transmission/include",850 "$dsoftbus_core_path/adapter/transmission/include",
@@ -922,23 +927,27 @@ ohos_unittest("TransProxySessionTest") {
922group("unittest") {927group("unittest") {
923 testonly = true928 testonly = true
924 deps = [929 deps = [
925- ":SoftbusProxyChannelControlPagingTest",
926 ":SoftbusProxyChannelListenerTest",930 ":SoftbusProxyChannelListenerTest",
927- ":SoftbusProxyChannelManagerPagingTest",
928 ":SoftbusProxyChannelManagerTest",931 ":SoftbusProxyChannelManagerTest",
929- ":SoftbusProxyChannelMessagePagingTest",
930- ":SoftbusProxyChannelMessageTest",
931 ":SoftbusProxyChannelPipelineTest",932 ":SoftbusProxyChannelPipelineTest",
932- ":SoftbusProxyChannelTransceiverPagingTest",
933 ":SoftbusProxyNetworkTest",933 ":SoftbusProxyNetworkTest",
934 ":SoftbusProxySessionTest",934 ":SoftbusProxySessionTest",
935 ":SoftbusProxyTransceiverTest",935 ":SoftbusProxyTransceiverTest",
936 ":SoftbusTransProxyChannelManagerTest",936 ":SoftbusTransProxyChannelManagerTest",
937 ":SoftbusTransProxyManagerTest",937 ":SoftbusTransProxyManagerTest",
938- ":SoftbusTransProxyMessageTest",
939 ":TransProxyChannelTest",938 ":TransProxyChannelTest",
940 ":TransProxyNetworkTest",939 ":TransProxyNetworkTest",
941 ":TransProxySessionStaticTest",940 ":TransProxySessionStaticTest",
942 ":TransProxySessionTest",941 ":TransProxySessionTest",
943 ]942 ]
943+ if (dsoftbus_feature_trans_proxy_channel) {
944+ deps += [
945+ ":SoftbusProxyChannelControlPagingTest",
946+ ":SoftbusProxyChannelManagerPagingTest",
947+ ":SoftbusProxyChannelMessagePagingTest",
948+ ":SoftbusProxyChannelMessageTest",
949+ ":SoftbusProxyChannelTransceiverPagingTest",
950+ ":SoftbusTransProxyMessageTest",
951+ ]
952+ }
944}953}
@@ -41,10 +41,12 @@ int32_t TransProxyGetSendMsgChanInfo(int32_t channelId, ProxyChannelInfo *chanIn
41 return GetSoftbusProxychannelControlPagingInterface()->TransProxyGetSendMsgChanInfo(channelId, chanInfo);41 return GetSoftbusProxychannelControlPagingInterface()->TransProxyGetSendMsgChanInfo(channelId, chanInfo);
42}42}
43 43 
44+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
44char *TransPagingPackHandShakeMsg(ProxyChannelInfo *info)45char *TransPagingPackHandShakeMsg(ProxyChannelInfo *info)
45{46{
46 return GetSoftbusProxychannelControlPagingInterface()->TransPagingPackHandShakeMsg(info);47 return GetSoftbusProxychannelControlPagingInterface()->TransPagingPackHandShakeMsg(info);
47}48}
49+#endif
48 50 
49int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash)51int32_t TransPagingPackMessage(PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash)
50{52{
@@ -70,10 +72,12 @@ int32_t AuthFindApplyKey(
70 info, applyKey, accountHash, accountHashLen);72 info, applyKey, accountHash, accountHashLen);
71}73}
72 74 
75+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
73char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan)76char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan)
74{77{
75 return GetSoftbusProxychannelControlPagingInterface()->TransPagingPackHandshakeAckMsg(chan);78 return GetSoftbusProxychannelControlPagingInterface()->TransPagingPackHandshakeAckMsg(chan);
76}79}
80+#endif
77 81 
78int32_t TransProxyPackMessage(ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo)82int32_t TransProxyPackMessage(ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo)
79{83{
@@ -100,15 +104,19 @@ char *TransProxyPackIdentity(const char *identity)
100 return GetSoftbusProxychannelControlPagingInterface()->TransProxyPackIdentity(identity);104 return GetSoftbusProxychannelControlPagingInterface()->TransProxyPackIdentity(identity);
101}105}
102 106 
107+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
103char *TransProxyPagingPackChannelId(int16_t channelId)108char *TransProxyPagingPackChannelId(int16_t channelId)
104{109{
105 return GetSoftbusProxychannelControlPagingInterface()->TransProxyPagingPackChannelId(channelId);110 return GetSoftbusProxychannelControlPagingInterface()->TransProxyPagingPackChannelId(channelId);
106}111}
112+#endif
107 113 
114+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
108char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId)115char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId)
109{116{
110 return GetSoftbusProxychannelControlPagingInterface()->TransPagingPackHandshakeErrMsg(errCode, channelId);117 return GetSoftbusProxychannelControlPagingInterface()->TransPagingPackHandshakeErrMsg(errCode, channelId);
111}118}
119+#endif
112 120 
113void AuthGetLatestIdByUuid(const char *uuid, AuthLinkType type, bool isMeta, AuthHandle *authHandle)121void AuthGetLatestIdByUuid(const char *uuid, AuthLinkType type, bool isMeta, AuthHandle *authHandle)
114{122{
@@ -33,7 +33,9 @@ public:
33 SoftbusProxychannelControlPagingInterface() {};33 SoftbusProxychannelControlPagingInterface() {};
34 virtual ~SoftbusProxychannelControlPagingInterface() {};34 virtual ~SoftbusProxychannelControlPagingInterface() {};
35 virtual int32_t TransProxyGetSendMsgChanInfo(int32_t channelId, ProxyChannelInfo *chanInfo) = 0;35 virtual int32_t TransProxyGetSendMsgChanInfo(int32_t channelId, ProxyChannelInfo *chanInfo) = 0;
36+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
36 virtual char *TransPagingPackHandShakeMsg(ProxyChannelInfo *info) = 0;37 virtual char *TransPagingPackHandShakeMsg(ProxyChannelInfo *info) = 0;
38+#endif
37 virtual int32_t TransPagingPackMessage(39 virtual int32_t TransPagingPackMessage(
38 PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash) = 0;40 PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash) = 0;
39 virtual int32_t TransProxyTransSendMsg(41 virtual int32_t TransProxyTransSendMsg(
@@ -42,15 +44,19 @@ public:
42 char *outBuf, uint32_t outBufLen, const unsigned char *inBuf, uint32_t inLen) = 0;44 char *outBuf, uint32_t outBufLen, const unsigned char *inBuf, uint32_t inLen) = 0;
43 virtual int32_t AuthFindApplyKey(45 virtual int32_t AuthFindApplyKey(
44 const RequestBusinessInfo *info, uint8_t *applyKey, char *accountHash, uint32_t accountHashLen) = 0;46 const RequestBusinessInfo *info, uint8_t *applyKey, char *accountHash, uint32_t accountHashLen) = 0;
47+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
45 virtual char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan) = 0;48 virtual char *TransPagingPackHandshakeAckMsg(ProxyChannelInfo *chan) = 0;
49+#endif
46 virtual int32_t TransProxyPackMessage(50 virtual int32_t TransProxyPackMessage(
47 ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo) = 0;51 ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo) = 0;
48 virtual char *TransProxyPackHandshakeMsg(ProxyChannelInfo *info) = 0;52 virtual char *TransProxyPackHandshakeMsg(ProxyChannelInfo *info) = 0;
49 virtual char *TransProxyPackHandshakeErrMsg(int32_t errCode) = 0;53 virtual char *TransProxyPackHandshakeErrMsg(int32_t errCode) = 0;
50 virtual char *TransProxyPackHandshakeAckMsg(ProxyChannelInfo *chan) = 0;54 virtual char *TransProxyPackHandshakeAckMsg(ProxyChannelInfo *chan) = 0;
51 virtual char *TransProxyPackIdentity(const char *identity) = 0;55 virtual char *TransProxyPackIdentity(const char *identity) = 0;
56+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
52 virtual char *TransProxyPagingPackChannelId(int16_t channelId) = 0;57 virtual char *TransProxyPagingPackChannelId(int16_t channelId) = 0;
53 virtual char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId) = 0;58 virtual char *TransPagingPackHandshakeErrMsg(int32_t errCode, int32_t channelId) = 0;
59+#endif
54 virtual void AuthGetLatestIdByUuid(60 virtual void AuthGetLatestIdByUuid(
55 const char *uuid, AuthLinkType type, bool isMeta, AuthHandle *authHandle) = 0;61 const char *uuid, AuthLinkType type, bool isMeta, AuthHandle *authHandle) = 0;
56 virtual int32_t TransProxySetAuthHandleByChanId(int32_t channelId, AuthHandle authHandle) = 0;62 virtual int32_t TransProxySetAuthHandleByChanId(int32_t channelId, AuthHandle authHandle) = 0;
@@ -67,7 +73,9 @@ public:
67 SoftbusProxychannelControlPagingInterfaceMock();73 SoftbusProxychannelControlPagingInterfaceMock();
68 ~SoftbusProxychannelControlPagingInterfaceMock() override;74 ~SoftbusProxychannelControlPagingInterfaceMock() override;
69 MOCK_METHOD2(TransProxyGetSendMsgChanInfo, int32_t(int32_t channelId, ProxyChannelInfo *chanInfo));75 MOCK_METHOD2(TransProxyGetSendMsgChanInfo, int32_t(int32_t channelId, ProxyChannelInfo *chanInfo));
76+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
70 MOCK_METHOD1(TransPagingPackHandShakeMsg, char *(ProxyChannelInfo *info));77 MOCK_METHOD1(TransPagingPackHandShakeMsg, char *(ProxyChannelInfo *info));
78+#endif
71 MOCK_METHOD4(TransPagingPackMessage, int32_t (79 MOCK_METHOD4(TransPagingPackMessage, int32_t (
72 PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash));80 PagingProxyMessage *msg, ProxyDataInfo *dataInfo, ProxyChannelInfo *chan, bool needHash));
73 MOCK_METHOD5(TransProxyTransSendMsg, int32_t (81 MOCK_METHOD5(TransProxyTransSendMsg, int32_t (
@@ -76,15 +84,19 @@ public:
76 char *outBuf, uint32_t outBufLen, const unsigned char *inBuf, uint32_t inLen));84 char *outBuf, uint32_t outBufLen, const unsigned char *inBuf, uint32_t inLen));
77 MOCK_METHOD4(AuthFindApplyKey,85 MOCK_METHOD4(AuthFindApplyKey,
78 int32_t(const RequestBusinessInfo *info, uint8_t *applyKey, char *accountHash, uint32_t accountHashLen));86 int32_t(const RequestBusinessInfo *info, uint8_t *applyKey, char *accountHash, uint32_t accountHashLen));
87+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
79 MOCK_METHOD1(TransPagingPackHandshakeAckMsg, char *(ProxyChannelInfo *chan));88 MOCK_METHOD1(TransPagingPackHandshakeAckMsg, char *(ProxyChannelInfo *chan));
89+#endif
80 MOCK_METHOD3(TransProxyPackMessage,90 MOCK_METHOD3(TransProxyPackMessage,
81 int32_t (ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo));91 int32_t (ProxyMessageHead *msg, AuthHandle authHandle, ProxyDataInfo *dataInfo));
82 MOCK_METHOD1(TransProxyPackHandshakeMsg, char *(ProxyChannelInfo *info));92 MOCK_METHOD1(TransProxyPackHandshakeMsg, char *(ProxyChannelInfo *info));
83 MOCK_METHOD1(TransProxyPackHandshakeErrMsg, char *(int32_t errCode));93 MOCK_METHOD1(TransProxyPackHandshakeErrMsg, char *(int32_t errCode));
84 MOCK_METHOD1(TransProxyPackHandshakeAckMsg, char *(ProxyChannelInfo *chan));94 MOCK_METHOD1(TransProxyPackHandshakeAckMsg, char *(ProxyChannelInfo *chan));
85 MOCK_METHOD1(TransProxyPackIdentity, char *(const char *identity));95 MOCK_METHOD1(TransProxyPackIdentity, char *(const char *identity));
96+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
86 MOCK_METHOD1(TransProxyPagingPackChannelId, char *(int16_t channelId));97 MOCK_METHOD1(TransProxyPagingPackChannelId, char *(int16_t channelId));
87 MOCK_METHOD2(TransPagingPackHandshakeErrMsg, char *(int32_t errCode, int32_t channelId));98 MOCK_METHOD2(TransPagingPackHandshakeErrMsg, char *(int32_t errCode, int32_t channelId));
99+#endif
88 MOCK_METHOD4(AuthGetLatestIdByUuid,100 MOCK_METHOD4(AuthGetLatestIdByUuid,
89 void (const char *uuid, AuthLinkType type, bool isMeta, AuthHandle *authHandle));101 void (const char *uuid, AuthLinkType type, bool isMeta, AuthHandle *authHandle));
90 MOCK_METHOD2(TransProxySetAuthHandleByChanId, int32_t (int32_t channelId, AuthHandle authHandle));102 MOCK_METHOD2(TransProxySetAuthHandleByChanId, int32_t (int32_t channelId, AuthHandle authHandle));
@@ -42,10 +42,12 @@ int32_t TransParseMessageHeadType(char *data, int32_t len, ProxyMessage *msg)
42 return GetSoftbusProxychannelTransceiverPagingInterface()->TransParseMessageHeadType(data, len, msg);42 return GetSoftbusProxychannelTransceiverPagingInterface()->TransParseMessageHeadType(data, len, msg);
43}43}
44 44 
45+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
45int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg)46int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg)
46{47{
47 return GetSoftbusProxychannelTransceiverPagingInterface()->TransPagingParseMessage(data, len, msg);48 return GetSoftbusProxychannelTransceiverPagingInterface()->TransPagingParseMessage(data, len, msg);
48}49}
50+#endif
49 51 
50int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient)52int32_t TransProxyGetChannelByCheckInfo(const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient)
51{53{
@@ -33,7 +33,9 @@ public:
33 SoftbusProxychannelTransceiverPagingInterface() {};33 SoftbusProxychannelTransceiverPagingInterface() {};
34 virtual ~SoftbusProxychannelTransceiverPagingInterface() {};34 virtual ~SoftbusProxychannelTransceiverPagingInterface() {};
35 virtual int32_t TransParseMessageHeadType(char *data, int32_t len, ProxyMessage *msg) = 0;35 virtual int32_t TransParseMessageHeadType(char *data, int32_t len, ProxyMessage *msg) = 0;
36+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
36 virtual int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg) = 0;37 virtual int32_t TransPagingParseMessage(char *data, int32_t len, ProxyMessage *msg) = 0;
38+#endif
37 virtual int32_t TransProxyGetChannelByCheckInfo(39 virtual int32_t TransProxyGetChannelByCheckInfo(
38 const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient) = 0;40 const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient) = 0;
39 virtual bool TransPagingHasListenAndGetInfoPacked(ProxyChannelInfo *info) = 0;41 virtual bool TransPagingHasListenAndGetInfoPacked(ProxyChannelInfo *info) = 0;
@@ -48,7 +50,9 @@ public:
48 SoftbusProxychannelTransceiverPagingInterfaceMock();50 SoftbusProxychannelTransceiverPagingInterfaceMock();
49 ~SoftbusProxychannelTransceiverPagingInterfaceMock() override;51 ~SoftbusProxychannelTransceiverPagingInterfaceMock() override;
50 MOCK_METHOD3(TransParseMessageHeadType, int32_t (char *data, int32_t len, ProxyMessage *msg));52 MOCK_METHOD3(TransParseMessageHeadType, int32_t (char *data, int32_t len, ProxyMessage *msg));
53+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
51 MOCK_METHOD3(TransPagingParseMessage, int32_t (char *data, int32_t len, ProxyMessage *msg));54 MOCK_METHOD3(TransPagingParseMessage, int32_t (char *data, int32_t len, ProxyMessage *msg));
55+#endif
52 MOCK_METHOD3(TransProxyGetChannelByCheckInfo, int32_t (56 MOCK_METHOD3(TransProxyGetChannelByCheckInfo, int32_t (
53 const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient));57 const PagingListenCheckInfo *checkInfo, ProxyChannelInfo *chan, bool isClient));
54 MOCK_METHOD1(TransPagingHasListenAndGetInfoPacked, bool (ProxyChannelInfo *info));58 MOCK_METHOD1(TransPagingHasListenAndGetInfoPacked, bool (ProxyChannelInfo *info));
@@ -16,6 +16,17 @@ import("../../common/mock/mock.gni")
16 16 
17softbus_proxy_channel_manager_ut_sources = [ "$dsoftbus_test_path/core/transmission/trans_channel/proxy_channel/softbus_proxychannel_manager_test.cpp" ]17softbus_proxy_channel_manager_ut_sources = [ "$dsoftbus_test_path/core/transmission/trans_channel/proxy_channel/softbus_proxychannel_manager_test.cpp" ]
18 18 
19+# Feature macro isolation: the test directly includes softbus_proxychannel_manager.c
20+# which contains #ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL guards. These defines must be
21+# propagated to the test compilation so the guarded branches match the product config.
22+softbus_proxy_channel_manager_ut_defines = []
23+if (dsoftbus_feature_trans_proxy_channel) {
24+ softbus_proxy_channel_manager_ut_defines += [ "DSOFTBUS_FEATURE_PROXY_CHANNEL" ]
25+}
26+if (dsoftbus_feature_trans_file) {
27+ softbus_proxy_channel_manager_ut_defines += [ "DSOFTBUS_FEATURE_TRANS_FILE" ]
28+}
29+ 
19softbus_proxy_channel_manager_ut_include_dirs = [30softbus_proxy_channel_manager_ut_include_dirs = [
20 "$dsoftbus_core_path/adapter/bus_center/include",31 "$dsoftbus_core_path/adapter/bus_center/include",
21 "$dsoftbus_core_path/adapter/transmission/include",32 "$dsoftbus_core_path/adapter/transmission/include",
@@ -203,10 +203,12 @@ HWTEST_F(SoftbusProxyNetworkTest, TransNotifyNetworkingChannelOpenedTest001, Tes
203 EXPECT_NE(SOFTBUS_OK, ret);203 EXPECT_NE(SOFTBUS_OK, ret);
204 /* test app type is normal and get network id fail */204 /* test app type is normal and get network id fail */
205 appInfo.appType = APP_TYPE_NORMAL;205 appInfo.appType = APP_TYPE_NORMAL;
206+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
206 ret = OnProxyChannelOpened(channelId, &appInfo, isServer);207 ret = OnProxyChannelOpened(channelId, &appInfo, isServer);
207 EXPECT_NE(SOFTBUS_OK, ret);208 EXPECT_NE(SOFTBUS_OK, ret);
208 ret = OnProxyChannelOpened(channelId, &appInfo, isServer);209 ret = OnProxyChannelOpened(channelId, &appInfo, isServer);
209 EXPECT_NE(SOFTBUS_OK, ret);210 EXPECT_NE(SOFTBUS_OK, ret);
211+#endif
210 /* test app type is inner */212 /* test app type is inner */
211 appInfo.appType = APP_TYPE_INNER;213 appInfo.appType = APP_TYPE_INNER;
212 ret = OnProxyChannelOpened(channelId, &appInfo, isServer);214 ret = OnProxyChannelOpened(channelId, &appInfo, isServer);
@@ -303,6 +303,7 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, SetCipherOfHandshakeMsgTest007, T
303 EXPECT_EQ(cipher & USE_BLE_CIPHER, 0);303 EXPECT_EQ(cipher & USE_BLE_CIPHER, 0);
304}304}
305 305 
306+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
306/*307/*
307 * @tc.name: TransPagingHandshakeEventTest001308 * @tc.name: TransPagingHandshakeEventTest001
308 * @tc.desc: test TransPagingHandshakeEvent info null309 * @tc.desc: test TransPagingHandshakeEvent info null
@@ -325,6 +326,7 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransPagingHandshakeEventTest002,
325 ProxyChannelInfo info = {0};326 ProxyChannelInfo info = {0};
326 TransPagingHandshakeEvent(TEST_CHANNEL_ID, &info);327 TransPagingHandshakeEvent(TEST_CHANNEL_ID, &info);
327}328}
329+#endif
328 330 
329/*331/*
330 * @tc.name: TransProxySendEncryptInnerMessageTest001332 * @tc.name: TransProxySendEncryptInnerMessageTest001
@@ -974,6 +976,7 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransProxyAckHandshakeTest008, Te
974 EXPECT_EQ(SOFTBUS_OK, ret);976 EXPECT_EQ(SOFTBUS_OK, ret);
975}977}
976 978 
979+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
977/*980/*
978 * @tc.name: TransProxyKeepaliveTest001981 * @tc.name: TransProxyKeepaliveTest001
979 * @tc.desc: test TransProxyKeepalive info null982 * @tc.desc: test TransProxyKeepalive info null
@@ -1233,7 +1236,9 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransProxyAckKeepaliveTest006, Te
1233 int32_t ret = TransProxyAckKeepalive(&info);1236 int32_t ret = TransProxyAckKeepalive(&info);
1234 EXPECT_EQ(SOFTBUS_OK, ret);1237 EXPECT_EQ(SOFTBUS_OK, ret);
1235}1238}
1239+#endif
1236 1240 
1241+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1237/*1242/*
1238 * @tc.name: TransPagingHandshakeTest0011243 * @tc.name: TransPagingHandshakeTest001
1239 * @tc.desc: test TransPagingHandshake param check and branches1244 * @tc.desc: test TransPagingHandshake param check and branches
@@ -1306,7 +1311,9 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransPagingGetAuthKeyTest001, Tes
1306 ret = TransPagingGetAuthKey(&chan, &msg);1311 ret = TransPagingGetAuthKey(&chan, &msg);
1307 EXPECT_EQ(SOFTBUS_OK, ret);1312 EXPECT_EQ(SOFTBUS_OK, ret);
1308}1313}
1314+#endif
1309 1315 
1316+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1310/*1317/*
1311 * @tc.name: TransPagingAckHandshakeTest0011318 * @tc.name: TransPagingAckHandshakeTest001
1312 * @tc.desc: test TransPagingAckHandshake NULL check and errMsg path1319 * @tc.desc: test TransPagingAckHandshake NULL check and errMsg path
@@ -1484,6 +1491,7 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransPagingAckHandshakeTest007, T
1484 int32_t ret = TransPagingAckHandshake(&chan, retCode);1491 int32_t ret = TransPagingAckHandshake(&chan, retCode);
1485 EXPECT_EQ(SOFTBUS_OK, ret);1492 EXPECT_EQ(SOFTBUS_OK, ret);
1486}1493}
1494+#endif
1487 1495 
1488/*1496/*
1489 * @tc.name: TransProxyResetPeerTest0011497 * @tc.name: TransProxyResetPeerTest001
@@ -1497,6 +1505,7 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransProxyResetPeerTest001, TestS
1497 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);1505 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
1498}1506}
1499 1507 
1508+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
1500/*1509/*
1501 * @tc.name: TransPagingResetTest0011510 * @tc.name: TransPagingResetTest001
1502 * @tc.desc: test TransPagingReset1511 * @tc.desc: test TransPagingReset
@@ -1568,6 +1577,7 @@ HWTEST_F(SoftbusProxyChannelControlPagingTest, TransProxyResetPeerTest003, TestS
1568 int32_t ret = TransProxyResetPeer(&chan);1577 int32_t ret = TransProxyResetPeer(&chan);
1569 EXPECT_EQ(SOFTBUS_OK, ret);1578 EXPECT_EQ(SOFTBUS_OK, ret);
1570}1579}
1580+#endif
1571 1581 
1572/*1582/*
1573 * @tc.name: TransProxyResetPeerTest0041583 * @tc.name: TransProxyResetPeerTest004
@@ -205,6 +205,7 @@ HWTEST_F(SoftbusProxyChannelListenerTest, NotifyNormalChannelOpenedTest001, Test
205 EXPECT_NE(SOFTBUS_OK, ret);205 EXPECT_NE(SOFTBUS_OK, ret);
206}206}
207 207 
208+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
208/**209/**
209 * @tc.name: NotifyNormalChannelOpenedTest002210 * @tc.name: NotifyNormalChannelOpenedTest002
210 * @tc.desc: test notify normal channel opened.211 * @tc.desc: test notify normal channel opened.
@@ -242,6 +243,7 @@ HWTEST_F(SoftbusProxyChannelListenerTest, NotifyNormalChannelOpenedTest002, Test
242 EXPECT_EQ(SOFTBUS_OK, ret);243 EXPECT_EQ(SOFTBUS_OK, ret);
243 SoftBusFree(appInfo);244 SoftBusFree(appInfo);
244}245}
246+#endif
245 247 
246/**248/**
247 * @tc.name: OnProxyChannelOpenedTest001249 * @tc.name: OnProxyChannelOpenedTest001
@@ -433,6 +435,7 @@ HWTEST_F(SoftbusProxyChannelListenerTest, TransSendNetworkingMessageTest003, Tes
433 SoftBusFree(appInfo);435 SoftBusFree(appInfo);
434}436}
435 437 
438+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
436/**439/**
437 * @tc.name: OnProxyChannelBindTest001440 * @tc.name: OnProxyChannelBindTest001
438 * @tc.desc: test OnProxyChannelBind.441 * @tc.desc: test OnProxyChannelBind.
@@ -458,6 +461,7 @@ HWTEST_F(SoftbusProxyChannelListenerTest, OnProxyChannelBindTest001, TestSize.Le
458 ret = OnProxyChannelBind(TEST_NUMBER_25, &appInfo);461 ret = OnProxyChannelBind(TEST_NUMBER_25, &appInfo);
459 EXPECT_EQ(SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE, ret);462 EXPECT_EQ(SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE, ret);
460}463}
464+#endif
461 465 
462/**466/**
463 * @tc.name: FillExtraByProxyChannelErrorEndTest001467 * @tc.name: FillExtraByProxyChannelErrorEndTest001
@@ -2002,6 +2002,7 @@ HWTEST_F(SoftbusProxyChannelManagerTest, TransProxyFillDataConfigTest002, TestSi
2002 EXPECT_EQ(SOFTBUS_OK, ret);2002 EXPECT_EQ(SOFTBUS_OK, ret);
2003}2003}
2004 2004 
2005+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
2005/*2006/*
2006 * @tc.name: TransProxyFillChannelInfoTest0012007 * @tc.name: TransProxyFillChannelInfoTest001
2007 * @tc.desc: Should return SOFTBUS_INVALID_PARAM when given null appInfo.2008 * @tc.desc: Should return SOFTBUS_INVALID_PARAM when given null appInfo.
@@ -2030,6 +2031,7 @@ HWTEST_F(SoftbusProxyChannelManagerTest, TransProxyFillChannelInfoTest001, TestS
2030 ReleaseChannelInfo(chan);2031 ReleaseChannelInfo(chan);
2031 SoftBusFree(msg);2032 SoftBusFree(msg);
2032}2033}
2034+#endif
2033 2035 
2034/*2036/*
2035 * @tc.name: TransProxySetAuthHandleByChanId0012037 * @tc.name: TransProxySetAuthHandleByChanId001
@@ -29,10 +29,12 @@
29using namespace testing;29using namespace testing;
30using namespace testing::ext;30using namespace testing::ext;
31 31 
32-static const char *TEST_DATA = "TEST_";
33#define TEST_LEN 1032#define TEST_LEN 10
34#define DATA_LEN 533#define DATA_LEN 5
35#define TEST_CHANNEL_ID 105834#define TEST_CHANNEL_ID 1058
35+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
36+static const char *TEST_DATA = "TEST_";
37+#endif
36 38 
37namespace OHOS {39namespace OHOS {
38 40 
@@ -89,6 +91,7 @@ HWTEST_F(SoftbusProxyChannelMessagePagingTest, TransParseMessageHeadTypeTest001,
89 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);91 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
90}92}
91 93 
94+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
92/**@95/**@
93 * @tc.name: TransUnPackPagingExtraDataTest00196 * @tc.name: TransUnPackPagingExtraDataTest001
94 * @tc.desc: test proxy open proxy channel, use wrong param.97 * @tc.desc: test proxy open proxy channel, use wrong param.
@@ -1532,4 +1535,5 @@ HWTEST_F(SoftbusProxyChannelMessagePagingTest, TransPagingParseMessageTest009, T
1532 int32_t ret = TransPagingParseMessage(data, len, &msg);1535 int32_t ret = TransPagingParseMessage(data, len, &msg);
1533 EXPECT_EQ(SOFTBUS_DECRYPT_ERR, ret);1536 EXPECT_EQ(SOFTBUS_DECRYPT_ERR, ret);
1534}1537}
1538+#endif
1535} // namespace OHOS1539} // namespace OHOS
@@ -595,6 +595,7 @@ HWTEST_F(SoftbusProxyChannelMessageTest, TransProxyAckHandshakeTest001, TestSize
595 EXPECT_NE(SOFTBUS_OK, ret);595 EXPECT_NE(SOFTBUS_OK, ret);
596}596}
597 597 
598+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
598/*599/*
599 * @tc.name: TransProxyKeepAliveTest001600 * @tc.name: TransProxyKeepAliveTest001
600 * @tc.desc: test proxy keepalive and keepalive ack message.601 * @tc.desc: test proxy keepalive and keepalive ack message.
@@ -628,6 +629,7 @@ HWTEST_F(SoftbusProxyChannelMessageTest, TransProxyKeepAliveTest001, TestSize.Le
628 ret = TransProxyAckKeepalive(&chanInfo);629 ret = TransProxyAckKeepalive(&chanInfo);
629 EXPECT_NE(SOFTBUS_OK, ret);630 EXPECT_NE(SOFTBUS_OK, ret);
630}631}
632+#endif
631 633 
632/*634/*
633 * @tc.name: TransProxyResetPeerTest001635 * @tc.name: TransProxyResetPeerTest001
@@ -996,6 +996,7 @@ HWTEST_F(SoftbusTransProxyChannelManagerTest, TransDealProxyCheckCollabResultTes
996 EXPECT_EQ(ret, SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE);996 EXPECT_EQ(ret, SOFTBUS_TRANS_PROXY_ERROR_APP_TYPE);
997}997}
998 998 
999+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
999/*1000/*
1000 * @tc.name: TransPagingUpdateDataConfigTest0011001 * @tc.name: TransPagingUpdateDataConfigTest001
1001 * @tc.desc: TransProxyResetReplyCnt1002 * @tc.desc: TransProxyResetReplyCnt
@@ -1020,6 +1021,7 @@ HWTEST_F(SoftbusTransProxyChannelManagerTest, TransPagingUpdateDataConfigTest001
1020 ret = TransPagingUpdateDataConfig(&appInfo);1021 ret = TransPagingUpdateDataConfig(&appInfo);
1021 EXPECT_EQ(ret, SOFTBUS_OK);1022 EXPECT_EQ(ret, SOFTBUS_OK);
1022}1023}
1024+#endif
1023 1025 
1024/*1026/*
1025 * @tc.name: TransDisableConnBrIdleCheckTest0011027 * @tc.name: TransDisableConnBrIdleCheckTest001
@@ -254,6 +254,7 @@ HWTEST_F(TransProxyChannelTest, TransProxyAckHandshakeTest001, TestSize.Level1)
254 TestDelTestProxyChannel();254 TestDelTestProxyChannel();
255}255}
256 256 
257+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
257/**258/**
258 * @tc.name: TransProxyKeepaliveTest001259 * @tc.name: TransProxyKeepaliveTest001
259 * @tc.desc: improve branch coverage, use the wrong or normal parameter..260 * @tc.desc: improve branch coverage, use the wrong or normal parameter..
@@ -358,6 +359,7 @@ HWTEST_F(TransProxyChannelTest, TransProxyAckKeepaliveTest002, TestSize.Level1)
358 359 
359 TestDelTestProxyChannel();360 TestDelTestProxyChannel();
360}361}
362+#endif
361 363 
362/**364/**
363 * @tc.name: TransProxyResetPeerTest001365 * @tc.name: TransProxyResetPeerTest001
@@ -687,6 +687,7 @@ HWTEST_F(TransProxyMessageTest, TransProxyAckHandshakeTest001, TestSize.Level1)
687 EXPECT_EQ(SOFTBUS_OK, ret);687 EXPECT_EQ(SOFTBUS_OK, ret);
688}688}
689 689 
690+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
690/**691/**
691 * @tc.name: TransProxyKeepAliveTest001692 * @tc.name: TransProxyKeepAliveTest001
692 * @tc.desc: test proxy keepalive and keepalive ack message.693 * @tc.desc: test proxy keepalive and keepalive ack message.
@@ -729,6 +730,7 @@ HWTEST_F(TransProxyMessageTest, TransProxyKeepAliveTest001, TestSize.Level1)
729 ret = TransProxyAckKeepalive(&chanInfo);730 ret = TransProxyAckKeepalive(&chanInfo);
730 EXPECT_EQ(SOFTBUS_OK, ret);731 EXPECT_EQ(SOFTBUS_OK, ret);
731}732}
733+#endif
732 734 
733/**735/**
734 * @tc.name: TransProxyResetPeerTest001736 * @tc.name: TransProxyResetPeerTest001
@@ -520,7 +520,9 @@ HWTEST_F(TransProxySessionTest, TransProxyHandshakeTest003, TestSize.Level1)
520 char *payLoad = static_cast<char *>(SoftBusCalloc(32));520 char *payLoad = static_cast<char *>(SoftBusCalloc(32));
521 ASSERT_TRUE(payLoad != nullptr);521 ASSERT_TRUE(payLoad != nullptr);
522 (void)strcpy_s(payLoad, 32, "testpayload");522 (void)strcpy_s(payLoad, 32, "testpayload");
523+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
523 TransPagingHandshakeEvent(TEST_NUMBER_256, nullptr);524 TransPagingHandshakeEvent(TEST_NUMBER_256, nullptr);
525+#endif
524 526 
525 SoftbusTransProxyNetworkMock networkObj;527 SoftbusTransProxyNetworkMock networkObj;
526 EXPECT_CALL(networkObj, TransProxyPackHandshakeMsg).WillOnce(Return(payLoad));528 EXPECT_CALL(networkObj, TransProxyPackHandshakeMsg).WillOnce(Return(payLoad));
@@ -558,6 +560,7 @@ HWTEST_F(TransProxySessionTest, TransProxyHandshakeTest004, TestSize.Level1)
558 EXPECT_EQ(ret, SOFTBUS_OK);560 EXPECT_EQ(ret, SOFTBUS_OK);
559}561}
560 562 
563+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
561/**564/**
562 * @tc.name: TransProxyKeepaliveTest001565 * @tc.name: TransProxyKeepaliveTest001
563 * @tc.desc: TransProxyKeepalive566 * @tc.desc: TransProxyKeepalive
@@ -647,6 +650,7 @@ HWTEST_F(TransProxySessionTest, TransProxyResetPeerTest001, TestSize.Level1)
647 int32_t ret = TransProxyAckKeepalive(&proxyChannelInfo);650 int32_t ret = TransProxyAckKeepalive(&proxyChannelInfo);
648 EXPECT_EQ(ret, SOFTBUS_TRANS_PACK_LEEPALIVE_ACK_FAILED);651 EXPECT_EQ(ret, SOFTBUS_TRANS_PACK_LEEPALIVE_ACK_FAILED);
649}652}
653+#endif
650 654 
651/**655/**
652 * @tc.name: TransProxyPackHandshakeErrMsgTest001656 * @tc.name: TransProxyPackHandshakeErrMsgTest001
@@ -38,7 +38,10 @@ ohos_fuzztest("ClientTransProxyFileCommonFuzzTest") {
38 "-fno-omit-frame-pointer",38 "-fno-omit-frame-pointer",
39 ]39 ]
40 40 
41- sources = [ "clienttransproxyfilecommon_fuzzer.cpp" ]41+ sources = [
42+ "clienttransproxyfilecommon_fuzzer.cpp",
43+ "$dsoftbus_root_path/sdk/transmission/trans_channel/proxy/src/client_trans_proxy_file_common.c",
44+ ]
42 45 
43 deps = [ "$dsoftbus_root_path/tests/sdk:softbus_client_static" ]46 deps = [ "$dsoftbus_root_path/tests/sdk:softbus_client_static" ]
44 47 
@@ -18,6 +18,7 @@ import("//build/test.gni")
18import("../../../../../dsoftbus.gni")18import("../../../../../dsoftbus.gni")
19 19 
20##############################fuzztest##########################################20##############################fuzztest##########################################
21+if (dsoftbus_feature_trans_file) {
21ohos_fuzztest("ClientTransProxyFileManagerFuzzTest") {22ohos_fuzztest("ClientTransProxyFileManagerFuzzTest") {
22 module_out_path = dsoftbus_fuzz_out_path23 module_out_path = dsoftbus_fuzz_out_path
23 24 
@@ -55,12 +56,15 @@ ohos_fuzztest("ClientTransProxyFileManagerFuzzTest") {
55 "hilog:libhilog",56 "hilog:libhilog",
56 ]57 ]
57}58}
59+}
58 60 
59group("fuzztest") {61group("fuzztest") {
60 testonly = true62 testonly = true
61 deps = []63 deps = []
62- deps += [64+ if (dsoftbus_feature_trans_file) {
63- # deps file65+ deps += [
64- ":ClientTransProxyFileManagerFuzzTest",66+ # deps file
65- ]67+ ":ClientTransProxyFileManagerFuzzTest",
68+ ]
69+ }
66}70}
@@ -23,6 +23,7 @@
23#include <unistd.h>23#include <unistd.h>
24 24 
25#include "client_trans_proxy_file_manager.h"25#include "client_trans_proxy_file_manager.h"
26+#include "client_trans_proxy_manager.h"
26#include "client_trans_pending.h"27#include "client_trans_pending.h"
27#include "client_trans_proxy_file_common.h"28#include "client_trans_proxy_file_common.h"
28#include "client_trans_session_manager.h"29#include "client_trans_session_manager.h"
@@ -58,11 +59,10 @@ void ClientTransProxyFileManagerTest(const uint8_t *data, size_t size)
58 GenerateInt32(channelId);59 GenerateInt32(channelId);
59 GenerateInt32(sessionId);60 GenerateInt32(sessionId);
60 GenerateUint32(fileCnt);61 GenerateUint32(fileCnt);
61- const FileFrame oneFrame = {0};
62 62 
63- ProxyChannelSendFile(channelId, sFileList, dFileList, fileCnt);63+ TransProxyChannelSendFile(channelId, sFileList, dFileList, fileCnt);
64 64 
65- ProcessRecvFileFrameData(sessionId, channelId, &oneFrame);65+ ProcessFileFrameData(sessionId, channelId, nullptr, 0, 0);
66 DataGenerator::Clear();66 DataGenerator::Clear();
67}67}
68} // namespace OHOS68} // namespace OHOS
@@ -175,6 +175,10 @@ ohos_unittest("TransClientSessionCallbackTest") {
175 debug = false175 debug = false
176 }176 }
177 module_out_path = module_output_path177 module_out_path = module_output_path
178+ defines = []
179+ if (dsoftbus_feature_trans_file) {
180+ defines += [ "DSOFTBUS_FEATURE_TRANS_FILE" ]
181+ }
178 sources = [ "client_trans_session_callback_test.cpp" ]182 sources = [ "client_trans_session_callback_test.cpp" ]
179 183 
180 include_dirs = [184 include_dirs = [
@@ -292,6 +296,10 @@ ohos_unittest("TransClientSessionCallbackExTest") {
292 296 
293ohos_unittest("TransClientMsgServiceTest") {297ohos_unittest("TransClientMsgServiceTest") {
294 module_out_path = module_output_path298 module_out_path = module_output_path
299+ defines = []
300+ if (dsoftbus_feature_trans_file) {
301+ defines += [ "DSOFTBUS_FEATURE_TRANS_FILE" ]
302+ }
295 sources = [ "client_trans_message_service_test.cpp" ]303 sources = [ "client_trans_message_service_test.cpp" ]
296 304 
297 include_dirs = [305 include_dirs = [
@@ -402,6 +410,10 @@ ohos_unittest("TransClientSessionTest") {
402 blocklist = "$dsoftbus_root_path/tests/cfi_blocklist.txt"410 blocklist = "$dsoftbus_root_path/tests/cfi_blocklist.txt"
403 }411 }
404 module_out_path = module_output_path412 module_out_path = module_output_path
413+ defines = []
414+ if (dsoftbus_feature_trans_file) {
415+ defines += [ "DSOFTBUS_FEATURE_TRANS_FILE" ]
416+ }
405 sources = [ "client_trans_session_test.cpp" ]417 sources = [ "client_trans_session_test.cpp" ]
406 418 
407 include_dirs = [419 include_dirs = [
@@ -381,6 +381,7 @@ HWTEST_F(TransClientMsgServiceTest, TransClientMsgServiceTest04, TestSize.Level1
381 DeleteSessionServerAndSession(g_sessionName, sessionId);381 DeleteSessionServerAndSession(g_sessionName, sessionId);
382}382}
383 383 
384+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
384/**385/**
385 * @tc.name: TransClientMsgServiceTest05386 * @tc.name: TransClientMsgServiceTest05
386 * @tc.desc: Transmission sdk message service send file with different parameters.387 * @tc.desc: Transmission sdk message service send file with different parameters.
@@ -416,6 +417,7 @@ HWTEST_F(TransClientMsgServiceTest, TransClientMsgServiceTest05, TestSize.Level1
416 EXPECT_EQ(ret, SOFTBUS_TRANS_CHANNEL_TYPE_INVALID);417 EXPECT_EQ(ret, SOFTBUS_TRANS_CHANNEL_TYPE_INVALID);
417 DeleteSessionServerAndSession(g_sessionName, sessionId);418 DeleteSessionServerAndSession(g_sessionName, sessionId);
418}419}
420+#endif
419 421 
420/**422/**
421 * @tc.name: CheckSendLenForBoosterTest01423 * @tc.name: CheckSendLenForBoosterTest01
@@ -542,11 +544,19 @@ HWTEST_F(TransClientMsgServiceTest, SendMessageAsyncTest01, TestSize.Level1)
542 g_sessionName, CHANNEL_TYPE_PROXY, BUSINESS_TYPE_D2D_MESSAGE, false, ENABLE_STATUS_SUCCESS);544 g_sessionName, CHANNEL_TYPE_PROXY, BUSINESS_TYPE_D2D_MESSAGE, false, ENABLE_STATUS_SUCCESS);
543 ASSERT_GT(sessionId, 0);545 ASSERT_GT(sessionId, 0);
544 ret = SendMessageAsync(sessionId, dataSeq, data, len);546 ret = SendMessageAsync(sessionId, dataSeq, data, len);
547+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
545 EXPECT_EQ(ret, SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND);548 EXPECT_EQ(ret, SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND);
549+#else
550+ EXPECT_EQ(ret, SOFTBUS_FUNC_NOT_SUPPORT);
551+#endif
546 552 
547 len = TRANS_TEST_BEYOND_MAX_MSG_LEN;553 len = TRANS_TEST_BEYOND_MAX_MSG_LEN;
548 ret = SendMessageAsync(sessionId, dataSeq, data, len);554 ret = SendMessageAsync(sessionId, dataSeq, data, len);
549- EXPECT_EQ(ret, SOFTBUS_TRANS_SEND_LEN_BEYOND_LIMIT);555+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
556+ EXPECT_EQ(ret, SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND);
557+#else
558+ EXPECT_EQ(ret, SOFTBUS_FUNC_NOT_SUPPORT);
559+#endif
550 560 
551 len = TRANS_TEST_DEFAULT_MAX_MSG_LEN;561 len = TRANS_TEST_DEFAULT_MAX_MSG_LEN;
552 ret = SendMessageAsync(sessionId, dataSeq, data, len);562 ret = SendMessageAsync(sessionId, dataSeq, data, len);
@@ -446,6 +446,7 @@ HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest05, TestS
446 SoftBusFree(sessionParam);446 SoftBusFree(sessionParam);
447}447}
448 448 
449+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
449/*450/*
450 * @tc.name: TransClientSessionCallbackTest06451 * @tc.name: TransClientSessionCallbackTest06
451 * @tc.desc: Transmission sdk session callback process receive file data452 * @tc.desc: Transmission sdk session callback process receive file data
@@ -475,6 +476,7 @@ HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest06, TestS
475 EXPECT_EQ(ret, SOFTBUS_OK);476 EXPECT_EQ(ret, SOFTBUS_OK);
476 SoftBusFree(sessionParam);477 SoftBusFree(sessionParam);
477}478}
479+#endif
478 480 
479/*481/*
480 * @tc.name: TransClientSessionCallbackTest07482 * @tc.name: TransClientSessionCallbackTest07
@@ -499,6 +501,7 @@ HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest07, TestS
499 session->channelType = CHANNEL_TYPE_PROXY;501 session->channelType = CHANNEL_TYPE_PROXY;
500 ret = ClientAddNewSession(g_sessionName, session);502 ret = ClientAddNewSession(g_sessionName, session);
501 ASSERT_EQ(ret, SOFTBUS_OK);503 ASSERT_EQ(ret, SOFTBUS_OK);
504+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
502 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,505 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
503 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);506 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
504 EXPECT_EQ(ret, SOFTBUS_NO_INIT);507 EXPECT_EQ(ret, SOFTBUS_NO_INIT);
@@ -514,6 +517,7 @@ HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest07, TestS
514 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,517 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
515 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ONLYONE_FRAME);518 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ONLYONE_FRAME);
516 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);519 EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
520+#endif
517 521 
518 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,522 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
519 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_BYTES);523 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_BYTES);
@@ -720,6 +724,7 @@ HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest13, TestS
720 ret = ClientAddNewSession(g_sessionName, session);724 ret = ClientAddNewSession(g_sessionName, session);
721 ASSERT_EQ(ret, SOFTBUS_OK);725 ASSERT_EQ(ret, SOFTBUS_OK);
722 726 
727+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
723 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,728 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
724 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ALLFILE_SENT);729 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ALLFILE_SENT);
725 EXPECT_EQ(ret, SOFTBUS_OK);730 EXPECT_EQ(ret, SOFTBUS_OK);
@@ -739,6 +744,7 @@ HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest13, TestS
739 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,744 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
740 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ACK_RESPONSE_SENT);745 strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_ACK_RESPONSE_SENT);
741 EXPECT_EQ(ret, SOFTBUS_OK);746 EXPECT_EQ(ret, SOFTBUS_OK);
747+#endif
742 748 
743 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,749 ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, TRANS_TEST_AUTH_DATA,
744 strlen(TRANS_TEST_AUTH_DATA), (SessionPktType)(TRANS_SESSION_FILE_ACK_RESPONSE_SENT + 1));750 strlen(TRANS_TEST_AUTH_DATA), (SessionPktType)(TRANS_SESSION_FILE_ACK_RESPONSE_SENT + 1));
@@ -143,6 +143,7 @@ static int32_t OnSessionOpenedErr(int32_t sessionId, int32_t result)
143 return SOFTBUS_NOT_FIND;143 return SOFTBUS_NOT_FIND;
144}144}
145 145 
146+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
146static int32_t OnReceiveFileStarted(int32_t sessionId, const char *files, int32_t fileCnt)147static int32_t OnReceiveFileStarted(int32_t sessionId, const char *files, int32_t fileCnt)
147{148{
148 TRANS_LOGI(TRANS_TEST, "receive file start, sessionId=%{public}d", sessionId);149 TRANS_LOGI(TRANS_TEST, "receive file start, sessionId=%{public}d", sessionId);
@@ -176,6 +177,7 @@ int32_t OnSendFileFinished(int32_t sessionId, const char *firstFile)
176 TRANS_LOGI(TRANS_TEST, "send file finished, sessionId=%{public}d", sessionId);177 TRANS_LOGI(TRANS_TEST, "send file finished, sessionId=%{public}d", sessionId);
177 return SOFTBUS_OK;178 return SOFTBUS_OK;
178}179}
180+#endif
179 181 
180static ISessionListener g_sessionlistener = {182static ISessionListener g_sessionlistener = {
181 .OnSessionOpened = OnSessionOpened,183 .OnSessionOpened = OnSessionOpened,
@@ -186,6 +188,7 @@ static ISessionListener g_sessionlistener = {
186 .OnQosEvent = OnQosEvent,188 .OnQosEvent = OnQosEvent,
187};189};
188 190 
191+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
189static IFileReceiveListener g_fileRecvListener = {192static IFileReceiveListener g_fileRecvListener = {
190 .OnReceiveFileStarted = OnReceiveFileStarted,193 .OnReceiveFileStarted = OnReceiveFileStarted,
191 .OnReceiveFileProcess = OnReceiveFileProcess,194 .OnReceiveFileProcess = OnReceiveFileProcess,
@@ -198,6 +201,7 @@ static IFileSendListener g_fileSendListener = {
198 .OnSendFileFinished = OnSendFileFinished,201 .OnSendFileFinished = OnSendFileFinished,
199 .OnFileTransError = OnFileTransError202 .OnFileTransError = OnFileTransError
200};203};
204+#endif
201 205 
202static void TestGenerateCommParam(SessionParam *sessionParam)206static void TestGenerateCommParam(SessionParam *sessionParam)
203{207{
@@ -747,6 +751,7 @@ HWTEST_F(TransClientSessionTest, TransClientSessionTest15, TestSize.Level1)
747 DeleteSessionServerAndSession(g_sessionName, sessionId);751 DeleteSessionServerAndSession(g_sessionName, sessionId);
748}752}
749 753 
754+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
750/*755/*
751 * @tc.name: TransClientSessionTest16756 * @tc.name: TransClientSessionTest16
752 * @tc.desc: test TransClientSession757 * @tc.desc: test TransClientSession
@@ -798,6 +803,7 @@ HWTEST_F(TransClientSessionTest, TransClientSessionTest17, TestSize.Level1)
798 ret = SetFileSendListener(g_pkgName, g_sessionName, &g_fileSendListener);803 ret = SetFileSendListener(g_pkgName, g_sessionName, &g_fileSendListener);
799 EXPECT_EQ(ret, SOFTBUS_OK);804 EXPECT_EQ(ret, SOFTBUS_OK);
800}805}
806+#endif
801 807 
802/*808/*
803 * @tc.name: TransClientSessionTest18809 * @tc.name: TransClientSessionTest18
@@ -270,12 +270,37 @@ HWTEST_F(TransClientSocketServiceTest, DataType001, TestSize.Level1)
270 info.pkgName = const_cast<char *>(g_pkgName.c_str());270 info.pkgName = const_cast<char *>(g_pkgName.c_str());
271 271 
272 for (int32_t type = DATA_TYPE_MESSAGE; type < DATA_TYPE_BUTT; type++) {272 for (int32_t type = DATA_TYPE_MESSAGE; type < DATA_TYPE_BUTT; type++) {
273+ if (type == DATA_TYPE_FILE) {
274+ continue;
275+ }
273 info.dataType = static_cast<TransDataType>(type);276 info.dataType = static_cast<TransDataType>(type);
274 int32_t socketId = Socket(info);277 int32_t socketId = Socket(info);
275 EXPECT_EQ(socketId, SOFTBUS_TRANS_SESSION_ADDPKG_FAILED);278 EXPECT_EQ(socketId, SOFTBUS_TRANS_SESSION_ADDPKG_FAILED);
276 }279 }
277}280}
278 281 
282+#ifndef DSOFTBUS_FEATURE_TRANS_FILE
283+/*
284+ * @tc.name: SocketFileDataType001
285+ * @tc.desc: test Socket with DATA_TYPE_FILE returns SOFTBUS_FUNC_NOT_SUPPORT
286+ * when trans_file feature is disabled
287+ * @tc.type: FUNC
288+ * @tc.require:
289+ */
290+HWTEST_F(TransClientSocketServiceTest, SocketFileDataType001, TestSize.Level1)
291+{
292+ SocketInfo info;
293+ info.name = const_cast<char *>(g_socketName.c_str());
294+ info.peerName = const_cast<char *>(g_socketPeerName.c_str());
295+ info.peerNetworkId = const_cast<char *>(g_networkId.c_str());
296+ info.pkgName = const_cast<char *>(g_pkgName.c_str());
297+ info.dataType = DATA_TYPE_FILE;
298+ 
299+ int32_t socketId = Socket(info);
300+ EXPECT_EQ(socketId, SOFTBUS_FUNC_NOT_SUPPORT);
301+}
302+#endif
303+ 
279static void OnShutdown(int32_t socket, ShutdownReason reason)304static void OnShutdown(int32_t socket, ShutdownReason reason)
280{305{
281 return;306 return;
@@ -75,7 +75,7 @@ if (defined(ohos_lite)) {
75 trans_sdk_proxy_test_deps =75 trans_sdk_proxy_test_deps =
76 [76 [
77 "$dsoftbus_root_path/dfx:softbus_dfx",77 "$dsoftbus_root_path/dfx:softbus_dfx",
78- "$dsoftbus_root_path/tests/sdk:softbus_client_static"78+ "$dsoftbus_root_path/tests/sdk:softbus_client_static",
79 ]79 ]
80 80 
81 module_output_path = "dsoftbus/soft_bus/transmission"81 module_output_path = "dsoftbus/soft_bus/transmission"
@@ -110,7 +110,10 @@ if (defined(ohos_lite)) {
110 module_output_path = "dsoftbus/soft_bus/transmission"110 module_output_path = "dsoftbus/soft_bus/transmission"
111 ohos_unittest("ClientTransProxyFileCommonTest") {111 ohos_unittest("ClientTransProxyFileCommonTest") {
112 module_out_path = module_output_path112 module_out_path = module_output_path
113- sources = [ "proxy/client_trans_proxy_file_common_test.cpp" ]113+ sources = [
114+ "proxy/client_trans_proxy_file_common_test.cpp",
115+ "$dsoftbus_root_path/sdk/transmission/trans_channel/proxy/src/client_trans_proxy_file_common.c",
116+ ]
114 include_dirs = trans_sdk_test_common_inc117 include_dirs = trans_sdk_test_common_inc
115 include_dirs += trans_sdk_proxy_test_inc118 include_dirs += trans_sdk_proxy_test_inc
116 deps = trans_sdk_test_common_deps119 deps = trans_sdk_test_common_deps
@@ -145,6 +148,10 @@ if (defined(ohos_lite)) {
145 debug = false148 debug = false
146 }149 }
147 module_out_path = module_output_path150 module_out_path = module_output_path
151+ defines = []
152+ if (dsoftbus_feature_trans_proxy_file) {
153+ defines += [ "DSOFTBUS_FEATURE_TRANS_PROXY_FILE" ]
154+ }
148 sources = [ "proxy/client_trans_proxy_manager_test.cpp" ]155 sources = [ "proxy/client_trans_proxy_manager_test.cpp" ]
149 include_dirs = trans_sdk_test_common_inc156 include_dirs = trans_sdk_test_common_inc
150 include_dirs += trans_sdk_proxy_test_inc157 include_dirs += trans_sdk_proxy_test_inc
@@ -319,7 +326,10 @@ if (defined(ohos_lite)) {
319 debug = false326 debug = false
320 }327 }
321 module_out_path = module_output_path328 module_out_path = module_output_path
322- sources = [ "proxy/client_trans_proxy_file_manager_test.cpp" ]329+ sources = [
330+ "proxy/client_trans_proxy_file_manager_test.cpp",
331+ "$dsoftbus_root_path/sdk/transmission/trans_channel/proxy/src/client_trans_proxy_file_common.c",
332+ ]
323 include_dirs = trans_sdk_test_common_inc333 include_dirs = trans_sdk_test_common_inc
324 include_dirs += [334 include_dirs += [
325 "$dsoftbus_root_path/components/nstackx/fillp/include",335 "$dsoftbus_root_path/components/nstackx/fillp/include",
@@ -436,6 +446,10 @@ if (defined(ohos_lite)) {
436 debug = false446 debug = false
437 }447 }
438 module_out_path = module_output_path448 module_out_path = module_output_path
449+ defines = []
450+ if (dsoftbus_feature_trans_file) {
451+ defines += [ "DSOFTBUS_FEATURE_TRANS_FILE" ]
452+ }
439 sources = [ "manager/client_trans_channel_manager_test.cpp" ]453 sources = [ "manager/client_trans_channel_manager_test.cpp" ]
440 include_dirs = trans_sdk_test_common_inc454 include_dirs = trans_sdk_test_common_inc
441 include_dirs += [455 include_dirs += [
@@ -597,11 +611,8 @@ if (defined(ohos_lite)) {
597 deps = [611 deps = [
598 ":ClientTransChannelCallbackTest",612 ":ClientTransChannelCallbackTest",
599 ":ClientTransChannelManagerTest",613 ":ClientTransChannelManagerTest",
600- ":ClientTransPendingTest",
601- ":ClientTransProxyD2DTest",
602 ":ClientTransProxyFileCommonTest",614 ":ClientTransProxyFileCommonTest",
603 ":ClientTransProxyFileManagerMockTest",615 ":ClientTransProxyFileManagerMockTest",
604- ":ClientTransProxyFileManagerTest",
605 ":ClientTransProxyManagerMockTest",616 ":ClientTransProxyManagerMockTest",
606 ":ClientTransUdpManagerTest",617 ":ClientTransUdpManagerTest",
607 ":TransClientProxyFileManagerMockTest",618 ":TransClientProxyFileManagerMockTest",
@@ -616,6 +627,15 @@ if (defined(ohos_lite)) {
616 "udp/distributed_stream:distributed_stream_test",627 "udp/distributed_stream:distributed_stream_test",
617 "udp/file:unittest",628 "udp/file:unittest",
618 ]629 ]
630+ if (dsoftbus_feature_trans_proxy_channel && dsoftbus_feature_trans_file) {
631+ deps += [ ":ClientTransProxyFileManagerTest" ]
632+ }
633+ if (dsoftbus_feature_trans_proxy_channel) {
634+ deps += [
635+ ":ClientTransPendingTest",
636+ ":ClientTransProxyD2DTest",
637+ ]
638+ }
619 if (dsoftbus_feature_trans_udp == true) {639 if (dsoftbus_feature_trans_udp == true) {
620 if (dsoftbus_feature_trans_udp_stream == true) {640 if (dsoftbus_feature_trans_udp_stream == true) {
621 if (!defined(ohos_lite)) {641 if (!defined(ohos_lite)) {
@@ -623,7 +643,6 @@ if (defined(ohos_lite)) {
623 ":ClientTransStreamTest",643 ":ClientTransStreamTest",
624 ":ClientTransUdpStreamInterfaceTest",644 ":ClientTransUdpStreamInterfaceTest",
625 ":StreamAdaptorTest",645 ":StreamAdaptorTest",
626- ":ClientTransProxyManagerTest",
627 ":ClientTransUdpManagerStaticTest",646 ":ClientTransUdpManagerStaticTest",
628 "tcp_direct:unittest",647 "tcp_direct:unittest",
629 "udp/stream/libsoftbus_stream:unittest",648 "udp/stream/libsoftbus_stream:unittest",
@@ -631,5 +650,9 @@ if (defined(ohos_lite)) {
631 }650 }
632 }651 }
633 }652 }
653+ if (dsoftbus_feature_trans_proxy_channel && dsoftbus_feature_trans_udp == true &&
654+ dsoftbus_feature_trans_udp_stream == true && !defined(ohos_lite)) {
655+ deps += [ ":ClientTransProxyManagerTest" ]
656+ }
634 }657 }
635}658}
@@ -132,7 +132,11 @@ HWTEST_F(ClientTransChannelCallbackTest, TransOnChannelOpenTest001, TestSize.Lev
132 132 
133 info.channelType = CHANNEL_TYPE_PROXY;133 info.channelType = CHANNEL_TYPE_PROXY;
134 ret = TransOnChannelOpened(g_sessionName, &info);134 ret = TransOnChannelOpened(g_sessionName, &info);
135+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
135 EXPECT_EQ(SOFTBUS_MEM_ERR, ret);136 EXPECT_EQ(SOFTBUS_MEM_ERR, ret);
137+#else
138+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
139+#endif
136 140 
137 info.channelType = CHANNEL_TYPE_TCP_DIRECT;141 info.channelType = CHANNEL_TYPE_TCP_DIRECT;
138 ret = TransOnChannelOpened(g_sessionName, &info);142 ret = TransOnChannelOpened(g_sessionName, &info);
@@ -166,7 +170,11 @@ HWTEST_F(ClientTransChannelCallbackTest, TransOnChannelOpenFailedTest001, TestSi
166 EXPECT_EQ(SOFTBUS_OK, ret);170 EXPECT_EQ(SOFTBUS_OK, ret);
167 171 
168 ret = TransOnChannelOpenFailed(channelId, CHANNEL_TYPE_PROXY, SOFTBUS_MEM_ERR);172 ret = TransOnChannelOpenFailed(channelId, CHANNEL_TYPE_PROXY, SOFTBUS_MEM_ERR);
173+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
169 EXPECT_EQ(SOFTBUS_OK, ret);174 EXPECT_EQ(SOFTBUS_OK, ret);
175+#else
176+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
177+#endif
170 178 
171 ret = TransOnChannelOpenFailed(channelId, CHANNEL_TYPE_TCP_DIRECT, SOFTBUS_MEM_ERR);179 ret = TransOnChannelOpenFailed(channelId, CHANNEL_TYPE_TCP_DIRECT, SOFTBUS_MEM_ERR);
172 EXPECT_EQ(SOFTBUS_OK, ret);180 EXPECT_EQ(SOFTBUS_OK, ret);
@@ -218,7 +226,11 @@ HWTEST_F(ClientTransChannelCallbackTest, TransOnChannelClosedTest001, TestSize.L
218 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);226 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);
219 227 
220 ret = TransOnChannelClosed(channelId, CHANNEL_TYPE_PROXY, messageType, SHUTDOWN_REASON_UNKNOWN);228 ret = TransOnChannelClosed(channelId, CHANNEL_TYPE_PROXY, messageType, SHUTDOWN_REASON_UNKNOWN);
229+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
221 EXPECT_EQ(SOFTBUS_OK, ret);230 EXPECT_EQ(SOFTBUS_OK, ret);
231+#else
232+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
233+#endif
222 234 
223 ret = TransOnChannelClosed(channelId, CHANNEL_TYPE_PROXY, udpMessageType, SHUTDOWN_REASON_UNKNOWN);235 ret = TransOnChannelClosed(channelId, CHANNEL_TYPE_PROXY, udpMessageType, SHUTDOWN_REASON_UNKNOWN);
224 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);236 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);
@@ -261,7 +273,11 @@ HWTEST_F(ClientTransChannelCallbackTest, TransOnChannelMsgReceivedTest001, TestS
261 EXPECT_EQ(SOFTBUS_OK, ret);273 EXPECT_EQ(SOFTBUS_OK, ret);
262 274 
263 ret = TransOnChannelMsgReceived(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH, TRANS_SESSION_BYTES);275 ret = TransOnChannelMsgReceived(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH, TRANS_SESSION_BYTES);
276+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
264 EXPECT_EQ(SOFTBUS_TRANS_PROXY_INVALID_CHANNEL_ID, ret);277 EXPECT_EQ(SOFTBUS_TRANS_PROXY_INVALID_CHANNEL_ID, ret);
278+#else
279+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
280+#endif
265 281 
266 ret = TransOnChannelMsgReceived(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH, TRANS_SESSION_BYTES);282 ret = TransOnChannelMsgReceived(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH, TRANS_SESSION_BYTES);
267 EXPECT_EQ(SOFTBUS_OK, ret);283 EXPECT_EQ(SOFTBUS_OK, ret);
@@ -311,7 +327,11 @@ HWTEST_F(ClientTransChannelCallbackTest, TransOnChannelBindTest001, TestSize.Lev
311 EXPECT_EQ(SOFTBUS_NOT_FIND, ret);327 EXPECT_EQ(SOFTBUS_NOT_FIND, ret);
312 328 
313 ret = TransOnChannelBind(channelId, CHANNEL_TYPE_PROXY);329 ret = TransOnChannelBind(channelId, CHANNEL_TYPE_PROXY);
330+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
314 EXPECT_EQ(SOFTBUS_OK, ret);331 EXPECT_EQ(SOFTBUS_OK, ret);
332+#else
333+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
334+#endif
315 335 
316 ret = TransOnChannelBind(channelId, CHANNEL_TYPE_AUTH);336 ret = TransOnChannelBind(channelId, CHANNEL_TYPE_AUTH);
317 EXPECT_EQ(SOFTBUS_OK, ret);337 EXPECT_EQ(SOFTBUS_OK, ret);
@@ -192,7 +192,11 @@ HWTEST_F(ClientTransChannelManagerTest, ClientTransChannelAsyncSendBytesTest001,
192 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);192 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);
193 193 
194 ret = ClientTransChannelAsyncSendBytes(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH, dataSeq);194 ret = ClientTransChannelAsyncSendBytes(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH, dataSeq);
195+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
195 EXPECT_EQ(SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND, ret);196 EXPECT_EQ(SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND, ret);
197+#else
198+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
199+#endif
196 200 
197 ret = ClientTransChannelAsyncSendBytes(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH, dataSeq);201 ret = ClientTransChannelAsyncSendBytes(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH, dataSeq);
198 EXPECT_EQ(SOFTBUS_TRANS_TDC_CHANNEL_NOT_FOUND, ret);202 EXPECT_EQ(SOFTBUS_TRANS_TDC_CHANNEL_NOT_FOUND, ret);
@@ -219,7 +223,11 @@ HWTEST_F(ClientTransChannelManagerTest, ClientTransChannelSendMessageTest001, Te
219 EXPECT_EQ(SOFTBUS_PERMISSION_DENIED, ret);223 EXPECT_EQ(SOFTBUS_PERMISSION_DENIED, ret);
220 224 
221 ret = ClientTransChannelSendMessage(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH);225 ret = ClientTransChannelSendMessage(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH);
226+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
222 EXPECT_EQ(SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND, ret);227 EXPECT_EQ(SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND, ret);
228+#else
229+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
230+#endif
223 231 
224 ret = ClientTransChannelSendMessage(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH);232 ret = ClientTransChannelSendMessage(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH);
225 EXPECT_EQ(SOFTBUS_TRANS_TDC_CHANNEL_NOT_FOUND, ret);233 EXPECT_EQ(SOFTBUS_TRANS_TDC_CHANNEL_NOT_FOUND, ret);
@@ -257,6 +265,7 @@ HWTEST_F(ClientTransChannelManagerTest, ClientTransChannelSendStreamTest001, Tes
257 EXPECT_EQ(SOFTBUS_TRANS_CHANNEL_TYPE_INVALID, ret);265 EXPECT_EQ(SOFTBUS_TRANS_CHANNEL_TYPE_INVALID, ret);
258}266}
259 267 
268+#ifdef DSOFTBUS_FEATURE_TRANS_FILE
260/**269/**
261 * @tc.name: ClientTransChannelSendFileTest001270 * @tc.name: ClientTransChannelSendFileTest001
262 * @tc.desc: client trans channel send file test, use the wrong or normal parameter.271 * @tc.desc: client trans channel send file test, use the wrong or normal parameter.
@@ -278,6 +287,7 @@ HWTEST_F(ClientTransChannelManagerTest, ClientTransChannelSendFileTest001, TestS
278 ret = ClientTransChannelSendFile(channelId, CHANNEL_TYPE_BUTT, sFileList, dFileList, fileCnt);287 ret = ClientTransChannelSendFile(channelId, CHANNEL_TYPE_BUTT, sFileList, dFileList, fileCnt);
279 EXPECT_EQ(SOFTBUS_TRANS_CHANNEL_TYPE_INVALID, ret);288 EXPECT_EQ(SOFTBUS_TRANS_CHANNEL_TYPE_INVALID, ret);
280}289}
290+#endif
281 291 
282/**292/**
283 * @tc.name: ClientTransChannelAsyncSendMessageTest001293 * @tc.name: ClientTransChannelAsyncSendMessageTest001
@@ -301,7 +311,11 @@ HWTEST_F(ClientTransChannelManagerTest, ClientTransChannelAsyncSendMessageTest00
301 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);311 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
302 312 
303 ret = ClientTransChannelAsyncSendMessage(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH, dataSeq);313 ret = ClientTransChannelAsyncSendMessage(channelId, CHANNEL_TYPE_PROXY, data, TEST_DATA_LENGTH, dataSeq);
314+#ifdef DSOFTBUS_FEATURE_PROXY_CHANNEL
304 EXPECT_EQ(SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND, ret);315 EXPECT_EQ(SOFTBUS_TRANS_PROXY_CHANNEL_NOT_FOUND, ret);
316+#else
317+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
318+#endif
305 319 
306 ret = ClientTransChannelAsyncSendMessage(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH, dataSeq);320 ret = ClientTransChannelAsyncSendMessage(channelId, CHANNEL_TYPE_TCP_DIRECT, data, TEST_DATA_LENGTH, dataSeq);
307 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);321 EXPECT_EQ(SOFTBUS_TRANS_INVALID_CHANNEL_TYPE, ret);
@@ -463,6 +463,7 @@ HWTEST_F(ClientTransProxyManagerTest, ClientTransProxyCloseChannelTest, TestSize
463 ClientTransProxyCloseChannel(channelId);463 ClientTransProxyCloseChannel(channelId);
464}464}
465 465 
466+#ifdef DSOFTBUS_FEATURE_TRANS_PROXY_FILE
466/*467/*
467 * @tc.name: TransProxyChannelSendFileTest468 * @tc.name: TransProxyChannelSendFileTest
468 * @tc.desc: trans proxy channel send file test469 * @tc.desc: trans proxy channel send file test
@@ -485,6 +486,7 @@ HWTEST_F(ClientTransProxyManagerTest, TransProxyChannelSendFileTest, TestSize.Le
485 ret = TransProxyChannelSendFile(channelId, g_testProxyFileName, g_proxyFileSet, TEST_FILE_CNT);486 ret = TransProxyChannelSendFile(channelId, g_testProxyFileName, g_proxyFileSet, TEST_FILE_CNT);
486 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);487 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
487}488}
489+#endif
488 490 
489/*491/*
490 * @tc.name: ClientTransProxyGetInfoByChannelIdTest492 * @tc.name: ClientTransProxyGetInfoByChannelIdTest
@@ -179,7 +179,11 @@ HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelOpenedTest002, TestSize.Lev
179 channel.businessType = BUSINESS_TYPE_FILE;179 channel.businessType = BUSINESS_TYPE_FILE;
180 channel.channelId = TEST_CHANNELID + 1;180 channel.channelId = TEST_CHANNELID + 1;
181 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort, &accessInfo);181 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort, &accessInfo);
182+#ifdef DSOFTBUS_FEATURE_TRANS_UDP_FILE
182 EXPECT_EQ(SOFTBUS_TRANS_NODE_NOT_FOUND, ret);183 EXPECT_EQ(SOFTBUS_TRANS_NODE_NOT_FOUND, ret);
184+#else
185+ EXPECT_EQ(SOFTBUS_FUNC_NOT_SUPPORT, ret);
186+#endif
183 187 
184 channel.businessType = TEST_COUNT;188 channel.businessType = TEST_COUNT;
185 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort, &accessInfo);189 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort, &accessInfo);