已合并
add coap exit init #11207
add coap exit init #11207
已合并
wangJE创建于 2025年11月4日
5 个文件变更+34-0
@@ -619,6 +619,9 @@ static int32_t InitCoapManager(void)
619 if (SoftBusMutexInit(&(g_discCoapMgr.lock), &mutexAttr) != SOFTBUS_OK) {619 if (SoftBusMutexInit(&(g_discCoapMgr.lock), &mutexAttr) != SOFTBUS_OK) {
620 return SOFTBUS_DISCOVER_COAP_INIT_FAIL;620 return SOFTBUS_DISCOVER_COAP_INIT_FAIL;
621 }621 }
622+ if (DiscCoapExtInitPacked() != SOFTBUS_OK) {
623+ return SOFTBUS_DISCOVER_COAP_INIT_FAIL;
Marion
MarionMarion2025年11月5日

LGTM

likedislike
624+ }
622 return SOFTBUS_OK;625 return SOFTBUS_OK;
623}626}
624 627 
@@ -670,6 +673,7 @@ void DiscCoapDeinit(void)
670{673{
671 DeinitCoapManager();674 DeinitCoapManager();
672 DiscNstackxDeinit();675 DiscNstackxDeinit();
676+ DiscCoapExtDeinitPacked();
673}677}
674 678 
675static int CoapPubInfoDump(int fd)679static int CoapPubInfoDump(int fd)
@@ -101,6 +101,9 @@ typedef int32_t (*DistActionInitFunc)(DiscActionUpdateBleCallback *updateAdvCb,
101typedef void (*DistActionDeinitFunc)(void);101typedef void (*DistActionDeinitFunc)(void);
102typedef bool (*IsUnknownDeviceFunc)(const char *bleMacStr);102typedef bool (*IsUnknownDeviceFunc)(const char *bleMacStr);
103 103 
104+typedef int32_t (*DiscCoapExtInitFunc)(void);
105+typedef void (*DiscCoapExtDeinitFunc)(void);
106+ 
104typedef struct TagDiscEnhanceFuncList {107typedef struct TagDiscEnhanceFuncList {
105 DiscTouchBleInitFunc discTouchBleInit;108 DiscTouchBleInitFunc discTouchBleInit;
106 DiscShareBleInitFunc discShareBleInit;109 DiscShareBleInitFunc discShareBleInit;
@@ -166,6 +169,8 @@ typedef struct TagDiscEnhanceFuncList {
166 DistActionInitFunc distActionInit;169 DistActionInitFunc distActionInit;
167 DistActionDeinitFunc distActionDeinit;170 DistActionDeinitFunc distActionDeinit;
168 IsUnknownDeviceFunc isUnknownDevice;171 IsUnknownDeviceFunc isUnknownDevice;
172+ DiscCoapExtInitFunc discCoapExtInit;
173+ DiscCoapExtDeinitFunc discCoapExtDeinit;
169} DiscEnhanceFuncList;174} DiscEnhanceFuncList;
170 175 
171DiscEnhanceFuncList *DiscEnhanceFuncListGet(void);176DiscEnhanceFuncList *DiscEnhanceFuncListGet(void);
@@ -55,6 +55,10 @@ int32_t DiscCoapAssembleCapDataPacked(uint32_t capability, const char *capabilit
55void DiscCoapUpdateAbilityPacked(uint32_t capability, const char *capabilityData, uint32_t dataLen,55void DiscCoapUpdateAbilityPacked(uint32_t capability, const char *capabilityData, uint32_t dataLen,
56 bool isPublish, bool isStart);56 bool isPublish, bool isStart);
57#endif57#endif
58+ 
59+int32_t DiscCoapExtInitPacked(void);
60+void DiscCoapExtDeinitPacked(void);
61+ 
58#endif62#endif
59 63 
60int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet);64int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet);
@@ -97,6 +97,9 @@ int32_t DiscRegisterEnhanceFunc(void *soHandle)
97 g_discEnhanceFuncList.distActionInit = dlsym(soHandle, "DistActionInit");97 g_discEnhanceFuncList.distActionInit = dlsym(soHandle, "DistActionInit");
98 g_discEnhanceFuncList.distActionDeinit = dlsym(soHandle, "DistActionDeinit");98 g_discEnhanceFuncList.distActionDeinit = dlsym(soHandle, "DistActionDeinit");
99 g_discEnhanceFuncList.isUnknownDevice = dlsym(soHandle, "IsUnknownDevice");99 g_discEnhanceFuncList.isUnknownDevice = dlsym(soHandle, "IsUnknownDevice");
100+ g_discEnhanceFuncList.discCoapExtInit = dlsym(soHandle, "DiscCoapExtInit");
101+ g_discEnhanceFuncList.discCoapExtDeinit = dlsym(soHandle, "DiscCoapExtDeinit");
102+
100 (void)DiscFeatureRegisterEnhanceFunc(soHandle);103 (void)DiscFeatureRegisterEnhanceFunc(soHandle);
101 return SOFTBUS_OK;104 return SOFTBUS_OK;
102}105}
@@ -134,6 +134,24 @@ void DiscCoapUpdateAbilityPacked(uint32_t capability, const char *capabilityData
134}134}
135#endif /* DSOFTBUS_FEATURE_DISC_COAP */135#endif /* DSOFTBUS_FEATURE_DISC_COAP */
136 136 
137+int32_t DiscCoapExtInitPacked(void)
138+{
139+ DiscEnhanceFuncList *pfnDiscEnhanceFuncList = DiscEnhanceFuncListGet();
140+ if (DiscCheckFuncPointer((void *)pfnDiscEnhanceFuncList->discCoapExtInit) != SOFTBUS_OK) {
141+ return SOFTBUS_OK;
142+ }
143+ return pfnDiscEnhanceFuncList->discCoapExtInit();
144+}
145+ 
146+void DiscCoapExtDeinitPacked(void)
147+{
148+ DiscEnhanceFuncList *pfnDiscEnhanceFuncList = DiscEnhanceFuncListGet();
149+ if (DiscCheckFuncPointer((void *)pfnDiscEnhanceFuncList->discCoapExtDeinit) != SOFTBUS_OK) {
150+ return;
151+ }
152+ return pfnDiscEnhanceFuncList->discCoapExtDeinit();
153+}
154+ 
137int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet)155int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet)
138{156{
139 DiscEnhanceFuncList *pfnDiscEnhanceFuncList = DiscEnhanceFuncListGet();157 DiscEnhanceFuncList *pfnDiscEnhanceFuncList = DiscEnhanceFuncListGet();