已合并
add coap exit init #11207
wangJE创建于 2025年11月4日
add coap exit init #11207
已合并
共 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; | ||
| 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 | ||
| 675 | static int CoapPubInfoDump(int fd) | 679 | static int CoapPubInfoDump(int fd) |
| @@ -101,6 +101,9 @@ typedef int32_t (*DistActionInitFunc)(DiscActionUpdateBleCallback *updateAdvCb, | |||
| 101 | typedef void (*DistActionDeinitFunc)(void); | 101 | typedef void (*DistActionDeinitFunc)(void); |
| 102 | typedef bool (*IsUnknownDeviceFunc)(const char *bleMacStr); | 102 | typedef bool (*IsUnknownDeviceFunc)(const char *bleMacStr); |
| 103 | 103 | ||
| 104 | +typedef int32_t (*DiscCoapExtInitFunc)(void); | ||
| 105 | +typedef void (*DiscCoapExtDeinitFunc)(void); | ||
| 106 | + | ||
| 104 | typedef struct TagDiscEnhanceFuncList { | 107 | typedef 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 | ||
| 171 | DiscEnhanceFuncList *DiscEnhanceFuncListGet(void); | 176 | DiscEnhanceFuncList *DiscEnhanceFuncListGet(void); |
| @@ -55,6 +55,10 @@ int32_t DiscCoapAssembleCapDataPacked(uint32_t capability, const char *capabilit | |||
| 55 | void DiscCoapUpdateAbilityPacked(uint32_t capability, const char *capabilityData, uint32_t dataLen, | 55 | void DiscCoapUpdateAbilityPacked(uint32_t capability, const char *capabilityData, uint32_t dataLen, |
| 56 | bool isPublish, bool isStart); | 56 | bool isPublish, bool isStart); |
| 57 | 57 | ||
| 58 | + | ||
| 59 | +int32_t DiscCoapExtInitPacked(void); | ||
| 60 | +void DiscCoapExtDeinitPacked(void); | ||
| 61 | + | ||
| 58 | 62 | ||
| 59 | 63 | ||
| 60 | int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet); | 64 | int32_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 | 135 | ||
| 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 | + | ||
| 137 | int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet) | 155 | int32_t DiscFillBtypePacked(uint32_t capability, uint32_t allCap, NSTACKX_DiscoverySettings *discSet) |
| 138 | { | 156 | { |
| 139 | DiscEnhanceFuncList *pfnDiscEnhanceFuncList = DiscEnhanceFuncListGet(); | 157 | DiscEnhanceFuncList *pfnDiscEnhanceFuncList = DiscEnhanceFuncListGet(); |
LGTM