已合并
fix coap lock problem #11173
wangJE创建于 2025年10月28日
fix coap lock problem #11173
已合并
共 2 个文件变更+91-145
| @@ -39,14 +39,18 @@ typedef struct { | |||
| 39 | bool isEmpty; | 39 | bool isEmpty; |
| 40 | int16_t capCount[MAX_CAP_NUM]; | 40 | int16_t capCount[MAX_CAP_NUM]; |
| 41 | uint32_t allCap[CAPABILITY_NUM]; | 41 | uint32_t allCap[CAPABILITY_NUM]; |
| 42 | - SoftBusMutex lock; | ||
| 43 | } DiscCoapInfo; | 42 | } DiscCoapInfo; |
| 44 | 43 | ||
| 45 | -static DiscCoapInfo *g_publishMgr = NULL; | 44 | +typedef struct { |
| 46 | -static DiscCoapInfo *g_subscribeMgr = NULL; | 45 | + DiscCoapInfo publishInfo; |
| 46 | + DiscCoapInfo subscribeInfo; | ||
| 47 | + SoftBusMutex lock; | ||
| 48 | +} DiscCoapManager; | ||
| 49 | + | ||
| 50 | +static DiscCoapManager g_discCoapMgr = {0}; | ||
| 47 | static int CoapPubInfoDump(int fd); | 51 | static int CoapPubInfoDump(int fd); |
| 48 | static int CoapSubInfoDump(int fd); | 52 | static int CoapSubInfoDump(int fd); |
| 49 | -static bool UpdateFilter(bool isSubscribe); | 53 | +static bool UpdateFilter(void); |
| 50 | 54 | ||
| 51 | static int32_t RegisterAllCapBitmap(uint32_t capBitmapNum, const uint32_t inCapBitmap[], DiscCoapInfo *info, | 55 | static int32_t RegisterAllCapBitmap(uint32_t capBitmapNum, const uint32_t inCapBitmap[], DiscCoapInfo *info, |
| 52 | uint32_t count) | 56 | uint32_t count) |
| @@ -205,7 +209,6 @@ static bool CheckParam(const PublishOption *pubOption, const SubscribeOption *su | |||
| 205 | { | 209 | { |
| 206 | if (isPublish) { | 210 | if (isPublish) { |
| 207 | DISC_CHECK_AND_RETURN_RET_LOGE(pubOption != NULL, false, DISC_COAP, "publish option is null"); | 211 | DISC_CHECK_AND_RETURN_RET_LOGE(pubOption != NULL, false, DISC_COAP, "publish option is null"); |
| 208 | - DISC_CHECK_AND_RETURN_RET_LOGE(g_publishMgr != NULL, false, DISC_COAP, "g_publishMgr is null"); | ||
| 209 | DISC_CHECK_AND_RETURN_RET_LOGE(LOW <= pubOption->freq && pubOption->freq < FREQ_BUTT, false, DISC_COAP, | 212 | DISC_CHECK_AND_RETURN_RET_LOGE(LOW <= pubOption->freq && pubOption->freq < FREQ_BUTT, false, DISC_COAP, |
| 210 | "invalid publish freq. freq=%{public}d", pubOption->freq); | 213 | "invalid publish freq. freq=%{public}d", pubOption->freq); |
| 211 | if (pubOption->ranging) { | 214 | if (pubOption->ranging) { |
| @@ -213,7 +216,6 @@ static bool CheckParam(const PublishOption *pubOption, const SubscribeOption *su | |||
| 213 | } | 216 | } |
| 214 | } else { | 217 | } else { |
| 215 | DISC_CHECK_AND_RETURN_RET_LOGE(subOption != NULL, false, DISC_COAP, "discovery option is null"); | 218 | DISC_CHECK_AND_RETURN_RET_LOGE(subOption != NULL, false, DISC_COAP, "discovery option is null"); |
| 216 | - DISC_CHECK_AND_RETURN_RET_LOGE(g_subscribeMgr != NULL, false, DISC_COAP, "g_subscribeMgr is null"); | ||
| 217 | DISC_CHECK_AND_RETURN_RET_LOGE(LOW <= subOption->freq && subOption->freq < FREQ_BUTT, false, DISC_COAP, | 219 | DISC_CHECK_AND_RETURN_RET_LOGE(LOW <= subOption->freq && subOption->freq < FREQ_BUTT, false, DISC_COAP, |
| 218 | "invalid discovery freq. freq=%{public}d", subOption->freq); | 220 | "invalid discovery freq. freq=%{public}d", subOption->freq); |
| 219 | } | 221 | } |
| @@ -253,18 +255,19 @@ static int32_t RegisterInfoToDfinder(const PublishOption *option, bool isActive) | |||
| 253 | { | 255 | { |
| 254 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(option, NULL, true), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 256 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(option, NULL, true), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 255 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckFeature(option), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 257 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckFeature(option), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 256 | - if (RegisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, g_publishMgr, MAX_CAP_NUM) != SOFTBUS_OK) { | 258 | + if (RegisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, |
| 259 | + &g_discCoapMgr.publishInfo, MAX_CAP_NUM) != SOFTBUS_OK) { | ||
| 257 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_MERGE_CAP_FAIL); | 260 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_MERGE_CAP_FAIL); |
| 258 | DISC_LOGE(DISC_COAP, "merge publish capability failed. isActive=%{public}s", isActive ? "active" : "passive"); | 261 | DISC_LOGE(DISC_COAP, "merge publish capability failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 259 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; | 262 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; |
| 260 | } | 263 | } |
| 261 | - if (!UpdateFilter(false)) { | 264 | + if (!UpdateFilter()) { |
| 262 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_REGISTER_CAP_FAIL); | 265 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_REGISTER_CAP_FAIL); |
| 263 | DISC_LOGE(DISC_COAP, "register all capability to dfinder failed."); | 266 | DISC_LOGE(DISC_COAP, "register all capability to dfinder failed."); |
| 264 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; | 267 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; |
| 265 | } | 268 | } |
| 266 | uint32_t curCap = option->capabilityBitmap[0]; | 269 | uint32_t curCap = option->capabilityBitmap[0]; |
| 267 | - if (DiscCoapRegisterServiceData(option, g_publishMgr->allCap[0]) != SOFTBUS_OK) { | 270 | + if (DiscCoapRegisterServiceData(option, g_discCoapMgr.publishInfo.allCap[0]) != SOFTBUS_OK) { |
| 268 | DfxRecordRegisterEnd(curCap, SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL); | 271 | DfxRecordRegisterEnd(curCap, SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL); |
| 269 | DISC_LOGE(DISC_COAP, "register service data to dfinder failed."); | 272 | DISC_LOGE(DISC_COAP, "register service data to dfinder failed."); |
| 270 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; | 273 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; |
| @@ -284,7 +287,7 @@ static int32_t Publish(const PublishOption *option, bool isActive) | |||
| 284 | { | 287 | { |
| 285 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(option, NULL, true), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 288 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(option, NULL, true), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 286 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckFeature(option), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 289 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckFeature(option), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 287 | - DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_publishMgr->lock)) == 0, SOFTBUS_LOCK_ERR, DISC_COAP, | 290 | + DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_discCoapMgr.lock)) == 0, SOFTBUS_LOCK_ERR, DISC_COAP, |
| 288 | "publish mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); | 291 | "publish mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 289 | if (RegisterInfoToDfinder(option, isActive) != SOFTBUS_OK) { | 292 | if (RegisterInfoToDfinder(option, isActive) != SOFTBUS_OK) { |
| 290 | DISC_LOGE(DISC_COAP, "register info to dfinder failed."); | 293 | DISC_LOGE(DISC_COAP, "register info to dfinder failed."); |
| @@ -304,16 +307,16 @@ static int32_t Publish(const PublishOption *option, bool isActive) | |||
| 304 | if (DiscCoapStartDiscovery(&discCoapOption) != SOFTBUS_OK) { | 307 | if (DiscCoapStartDiscovery(&discCoapOption) != SOFTBUS_OK) { |
| 305 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, | 308 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, |
| 306 | SOFTBUS_HISYSEVT_DISCOVER_COAP_START_DISCOVER_FAIL); | 309 | SOFTBUS_HISYSEVT_DISCOVER_COAP_START_DISCOVER_FAIL); |
| 307 | - DISC_LOGE(DISC_COAP, "coap active publish failed, allCap=%{public}u", g_publishMgr->allCap[0]); | 310 | + DISC_LOGE(DISC_COAP, "coap active publish failed, allCap=%{public}u", g_discCoapMgr.publishInfo.allCap[0]); |
| 308 | goto PUB_FAIL; | 311 | goto PUB_FAIL; |
| 309 | } | 312 | } |
| 310 | } | 313 | } |
| 311 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 314 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 312 | DISC_LOGI(DISC_COAP, "coap publish succ, isActive=%{public}s, allCap=%{public}u ", isActive ? "active" : "passive", | 315 | DISC_LOGI(DISC_COAP, "coap publish succ, isActive=%{public}s, allCap=%{public}u ", isActive ? "active" : "passive", |
| 313 | - g_publishMgr->allCap[0]); | 316 | + g_discCoapMgr.publishInfo.allCap[0]); |
| 314 | return SOFTBUS_OK; | 317 | return SOFTBUS_OK; |
| 315 | PUB_FAIL: | 318 | PUB_FAIL: |
| 316 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 319 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 317 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; | 320 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; |
| 318 | } | 321 | } |
| 319 | 322 | ||
| @@ -348,11 +351,12 @@ static int32_t UnPublish(const PublishOption *option, bool isActive) | |||
| 348 | { | 351 | { |
| 349 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(option, NULL, true), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 352 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(option, NULL, true), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 350 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckFeature(option), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 353 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckFeature(option), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 351 | - DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_publishMgr->lock)) == 0, SOFTBUS_LOCK_ERR, DISC_COAP, | 354 | + DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_discCoapMgr.lock)) == 0, SOFTBUS_LOCK_ERR, DISC_COAP, |
| 352 | "unPublish mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); | 355 | "unPublish mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 353 | 356 | ||
| 354 | - if (UnregisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, g_publishMgr, MAX_CAP_NUM) != SOFTBUS_OK) { | 357 | + if (UnregisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, |
| 355 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 358 | + &g_discCoapMgr.publishInfo, MAX_CAP_NUM) != SOFTBUS_OK) { |
| 359 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); | ||
| 356 | DISC_LOGE(DISC_COAP, | 360 | DISC_LOGE(DISC_COAP, |
| 357 | "unRegister publish capability failed. isActive=%{public}s", isActive ? "active" : "passive"); | 361 | "unRegister publish capability failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 358 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_CANCEL_CAP_FAIL); | 362 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_CANCEL_CAP_FAIL); |
| @@ -362,31 +366,31 @@ static int32_t UnPublish(const PublishOption *option, bool isActive) | |||
| 362 | DiscCoapUpdateAbilityPacked(option->capabilityBitmap[0], (const char *)option->capabilityData, | 366 | DiscCoapUpdateAbilityPacked(option->capabilityBitmap[0], (const char *)option->capabilityData, |
| 363 | option->dataLen, true, false); | 367 | option->dataLen, true, false); |
| 364 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ | 368 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ |
| 365 | - if (!UpdateFilter(false)) { | 369 | + if (!UpdateFilter()) { |
| 366 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 370 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 367 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, | 371 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, |
| 368 | SOFTBUS_HISYSEVT_DISCOVER_COAP_REGISTER_CAP_FAIL); | 372 | SOFTBUS_HISYSEVT_DISCOVER_COAP_REGISTER_CAP_FAIL); |
| 369 | return SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL; | 373 | return SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL; |
| 370 | } | 374 | } |
| 371 | uint32_t curCap = option->capabilityBitmap[0]; | 375 | uint32_t curCap = option->capabilityBitmap[0]; |
| 372 | - if (DiscCoapRegisterServiceData(option, g_publishMgr->allCap[0]) != SOFTBUS_OK) { | 376 | + if (DiscCoapRegisterServiceData(option, g_discCoapMgr.publishInfo.allCap[0]) != SOFTBUS_OK) { |
| 373 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 377 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 374 | DfxRecordRegisterEnd(curCap, SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL); | 378 | DfxRecordRegisterEnd(curCap, SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL); |
| 375 | DISC_LOGE(DISC_COAP, "register service data to dfinder failed."); | 379 | DISC_LOGE(DISC_COAP, "register service data to dfinder failed."); |
| 376 | return SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL; | 380 | return SOFTBUS_DISCOVER_COAP_REGISTER_CAP_FAIL; |
| 377 | } | 381 | } |
| 378 | - if (isActive && g_publishMgr->isEmpty) { | 382 | + if (isActive && g_discCoapMgr.publishInfo.isEmpty) { |
| 379 | if (DiscCoapStopDiscovery() != SOFTBUS_OK) { | 383 | if (DiscCoapStopDiscovery() != SOFTBUS_OK) { |
| 380 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 384 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 381 | - DISC_LOGE(DISC_COAP, "coap unpublish failed, allCap=%{public}u", g_publishMgr->allCap[0]); | 385 | + DISC_LOGE(DISC_COAP, "coap unpublish failed, allCap=%{public}u", g_discCoapMgr.publishInfo.allCap[0]); |
| 382 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, | 386 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, |
| 383 | SOFTBUS_HISYSEVT_DISCOVER_COAP_STOP_DISCOVER_FAIL); | 387 | SOFTBUS_HISYSEVT_DISCOVER_COAP_STOP_DISCOVER_FAIL); |
| 384 | return SOFTBUS_DISCOVER_COAP_STOP_PUBLISH_FAIL; | 388 | return SOFTBUS_DISCOVER_COAP_STOP_PUBLISH_FAIL; |
| 385 | } | 389 | } |
| 386 | } | 390 | } |
| 387 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 391 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 388 | DISC_LOGI(DISC_COAP, "coap unPublish succ, isActive=%{public}s, allCap=%{public}u", isActive ? | 392 | DISC_LOGI(DISC_COAP, "coap unPublish succ, isActive=%{public}s, allCap=%{public}u", isActive ? |
| 389 | - "active" : "passive", g_publishMgr->allCap[0]); | 393 | + "active" : "passive", g_discCoapMgr.publishInfo.allCap[0]); |
| 390 | return SOFTBUS_OK; | 394 | return SOFTBUS_OK; |
| 391 | } | 395 | } |
| 392 | 396 | ||
| @@ -406,50 +410,14 @@ static int32_t CoapStopScan(const PublishOption *option) | |||
| 406 | return ret; | 410 | return ret; |
| 407 | } | 411 | } |
| 408 | 412 | ||
| 409 | -static void GetPubCapability(uint32_t *capability, uint32_t capLen, bool *isNeedUpdate) | 413 | +static bool UpdateFilter(void) |
| 410 | { | 414 | { |
| 411 | - DISC_CHECK_AND_RETURN_LOGE(SoftBusMutexLock(&(g_publishMgr->lock)) == SOFTBUS_OK, | 415 | + if (!g_discCoapMgr.publishInfo.isUpdate && !g_discCoapMgr.subscribeInfo.isUpdate) { |
| 412 | - DISC_COAP, "mutex lock failed."); | 416 | + return true; |
| 413 | - if (memcpy_s(capability, capLen * sizeof(uint32_t), | ||
| 414 | - g_publishMgr->allCap, sizeof(g_publishMgr->allCap)) == EOK) { | ||
| 415 | - *isNeedUpdate = g_publishMgr->isUpdate; | ||
| 416 | - } else { | ||
| 417 | - DISC_LOGE(DISC_COAP, "cpy pub allCap failed"); | ||
| 418 | } | 417 | } |
| 419 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | ||
| 420 | -} | ||
| 421 | - | ||
| 422 | -static void GetSubscribeCapability(uint32_t *capability, uint32_t capLen, bool *isNeedUpdate) | ||
| 423 | -{ | ||
| 424 | - DISC_CHECK_AND_RETURN_LOGE(SoftBusMutexLock(&(g_subscribeMgr->lock)) == SOFTBUS_OK, | ||
| 425 | - DISC_COAP, "mutex lock failed."); | ||
| 426 | - if (memcpy_s(capability, capLen * sizeof(uint32_t), | ||
| 427 | - g_subscribeMgr->allCap, sizeof(g_subscribeMgr->allCap)) == EOK) { | ||
| 428 | - *isNeedUpdate = g_subscribeMgr->isUpdate; | ||
| 429 | - } else { | ||
| 430 | - DISC_LOGE(DISC_COAP, "cpy pub allCap failed"); | ||
| 431 | - } | ||
| 432 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | ||
| 433 | -} | ||
| 434 | - | ||
| 435 | -static bool UpdateFilter(bool isSubscribe) | ||
| 436 | -{ | ||
| 437 | - uint32_t pubCap[CAPABILITY_NUM] = {0}; | ||
| 438 | - uint32_t subCap[CAPABILITY_NUM] = {0}; | ||
| 439 | - bool pubIsNeedUpdate = false; | ||
| 440 | - bool subIsNeedUpdate = false; | ||
| 441 | - if (isSubscribe) { | ||
| 442 | - subIsNeedUpdate = g_subscribeMgr->isUpdate; | ||
| 443 | - (void)memcpy_s(subCap, sizeof(subCap), g_subscribeMgr->allCap, sizeof(g_subscribeMgr->allCap)); | ||
| 444 | - GetPubCapability(pubCap, CAPABILITY_NUM, &pubIsNeedUpdate); | ||
| 445 | - } else { | ||
| 446 | - pubIsNeedUpdate = g_publishMgr->isUpdate; | ||
| 447 | - (void)memcpy_s(pubCap, sizeof(pubCap), g_publishMgr->allCap, sizeof(g_publishMgr->allCap)); | ||
| 448 | - GetSubscribeCapability(subCap, CAPABILITY_NUM, &subIsNeedUpdate); | ||
| 449 | - } | ||
| 450 | - DISC_CHECK_AND_RETURN_RET_LOGW(pubIsNeedUpdate || subIsNeedUpdate, true, DISC_COAP, "no need update"); | ||
| 451 | uint32_t allCap[CAPABILITY_NUM] = {0}; | 418 | uint32_t allCap[CAPABILITY_NUM] = {0}; |
| 452 | - AggregateAllCap(allCap, CAPABILITY_NUM, pubCap, subCap, CAPABILITY_NUM); | 419 | + AggregateAllCap(allCap, CAPABILITY_NUM, g_discCoapMgr.subscribeInfo.allCap, |
| 420 | + g_discCoapMgr.publishInfo.allCap, CAPABILITY_NUM); | ||
| 453 | int32_t ret = DiscCoapSetFilterCapability(CAPABILITY_NUM, allCap); | 421 | int32_t ret = DiscCoapSetFilterCapability(CAPABILITY_NUM, allCap); |
| 454 | if (ret != SOFTBUS_OK || DiscCoapRegisterCapability(CAPABILITY_NUM, allCap) != SOFTBUS_OK) { | 422 | if (ret != SOFTBUS_OK || DiscCoapRegisterCapability(CAPABILITY_NUM, allCap) != SOFTBUS_OK) { |
| 455 | DfxRecordSetFilterEnd(allCap[0], ret); | 423 | DfxRecordSetFilterEnd(allCap[0], ret); |
| @@ -463,7 +431,8 @@ static bool UpdateFilter(bool isSubscribe) | |||
| 463 | 431 | ||
| 464 | static int32_t CoapUpdateSubscribeCapBitmap(const SubscribeOption *option, bool isActive) | 432 | static int32_t CoapUpdateSubscribeCapBitmap(const SubscribeOption *option, bool isActive) |
| 465 | { | 433 | { |
| 466 | - if (RegisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, g_subscribeMgr, MAX_CAP_NUM) != SOFTBUS_OK) { | 434 | + if (RegisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, |
| 435 | + &g_discCoapMgr.subscribeInfo, MAX_CAP_NUM) != SOFTBUS_OK) { | ||
| 467 | DISC_LOGE(DISC_COAP, "merge discovery capability failed. isActive=%{public}s", isActive ? "active" : "passive"); | 436 | DISC_LOGE(DISC_COAP, "merge discovery capability failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 468 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_MERGE_CAP_FAIL); | 437 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_MERGE_CAP_FAIL); |
| 469 | return SOFTBUS_DISCOVER_COAP_MERGE_CAP_FAIL; | 438 | return SOFTBUS_DISCOVER_COAP_MERGE_CAP_FAIL; |
| @@ -472,7 +441,7 @@ static int32_t CoapUpdateSubscribeCapBitmap(const SubscribeOption *option, bool | |||
| 472 | DiscCoapUpdateAbilityPacked(option->capabilityBitmap[0], (const char *)option->capabilityData, | 441 | DiscCoapUpdateAbilityPacked(option->capabilityBitmap[0], (const char *)option->capabilityData, |
| 473 | option->dataLen, false, true); | 442 | option->dataLen, false, true); |
| 474 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ | 443 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ |
| 475 | - if (!UpdateFilter(true)) { | 444 | + if (!UpdateFilter()) { |
| 476 | return SOFTBUS_DISCOVER_COAP_SET_FILTER_CAP_FAIL; | 445 | return SOFTBUS_DISCOVER_COAP_SET_FILTER_CAP_FAIL; |
| 477 | } | 446 | } |
| 478 | return SOFTBUS_OK; | 447 | return SOFTBUS_OK; |
| @@ -481,21 +450,22 @@ static int32_t CoapUpdateSubscribeCapBitmap(const SubscribeOption *option, bool | |||
| 481 | static int32_t Discovery(const SubscribeOption *option, bool isActive) | 450 | static int32_t Discovery(const SubscribeOption *option, bool isActive) |
| 482 | { | 451 | { |
| 483 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(NULL, option, false), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 452 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(NULL, option, false), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 484 | - DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_subscribeMgr->lock)) == 0, SOFTBUS_LOCK_ERR, DISC_COAP, | 453 | + DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_discCoapMgr.lock)) == 0, SOFTBUS_LOCK_ERR, DISC_COAP, |
| 485 | "discovery mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); | 454 | "discovery mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 486 | int32_t ret = CoapUpdateSubscribeCapBitmap(option, isActive); | 455 | int32_t ret = CoapUpdateSubscribeCapBitmap(option, isActive); |
| 487 | if (ret != SOFTBUS_OK) { | 456 | if (ret != SOFTBUS_OK) { |
| 488 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 457 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 489 | return ret; | 458 | return ret; |
| 490 | } | 459 | } |
| 491 | if (!isActive) { | 460 | if (!isActive) { |
| 492 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 461 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 493 | - DISC_LOGI(DISC_COAP, "coap start passive discovery succ, filters=%{public}u", g_subscribeMgr->allCap[0]); | 462 | + DISC_LOGI(DISC_COAP, "coap start passive discovery succ, filters=%{public}u", |
| 463 | + g_discCoapMgr.subscribeInfo.allCap[0]); | ||
| 494 | return SOFTBUS_OK; | 464 | return SOFTBUS_OK; |
| 495 | } | 465 | } |
| 496 | if (DiscCoapStopDiscovery() != SOFTBUS_OK) { | 466 | if (DiscCoapStopDiscovery() != SOFTBUS_OK) { |
| 497 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 467 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 498 | - DISC_LOGE(DISC_COAP, "coap stop discovery failed, filters=%{public}u", g_subscribeMgr->allCap[0]); | 468 | + DISC_LOGE(DISC_COAP, "coap stop discovery failed, filters=%{public}u", g_discCoapMgr.subscribeInfo.allCap[0]); |
| 499 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_STOP_DISCOVER_FAIL); | 469 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_STOP_DISCOVER_FAIL); |
| 500 | return SOFTBUS_DISCOVER_COAP_STOP_DISCOVER_FAIL; | 470 | return SOFTBUS_DISCOVER_COAP_STOP_DISCOVER_FAIL; |
| 501 | } | 471 | } |
| @@ -508,19 +478,19 @@ static int32_t Discovery(const SubscribeOption *option, bool isActive) | |||
| 508 | uint32_t curCap = option->capabilityBitmap[0]; | 478 | uint32_t curCap = option->capabilityBitmap[0]; |
| 509 | if (DiscCoapRegisterCapabilityData(option->capabilityData, option->dataLen, curCap) != SOFTBUS_OK) { | 479 | if (DiscCoapRegisterCapabilityData(option->capabilityData, option->dataLen, curCap) != SOFTBUS_OK) { |
| 510 | DISC_LOGW(DISC_COAP, "register capability data to dfinder failed."); | 480 | DISC_LOGW(DISC_COAP, "register capability data to dfinder failed."); |
| 511 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 481 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 512 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; | 482 | return SOFTBUS_DISCOVER_COAP_START_PUBLISH_FAIL; |
| 513 | } | 483 | } |
| 514 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ | 484 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ |
| 515 | - SetDiscCoapOption(&discCoapOption, &discOption, g_subscribeMgr->allCap[0]); | 485 | + SetDiscCoapOption(&discCoapOption, &discOption, g_discCoapMgr.subscribeInfo.allCap[0]); |
| 516 | if (DiscCoapStartDiscovery(&discCoapOption) != SOFTBUS_OK) { | 486 | if (DiscCoapStartDiscovery(&discCoapOption) != SOFTBUS_OK) { |
| 517 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 487 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 518 | - DISC_LOGE(DISC_COAP, "coap start discovery failed, filters=%{public}u", g_subscribeMgr->allCap[0]); | 488 | + DISC_LOGE(DISC_COAP, "coap start discovery failed, filters=%{public}u", g_discCoapMgr.subscribeInfo.allCap[0]); |
| 519 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_START_DISCOVER_FAIL); | 489 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_START_DISCOVER_FAIL); |
| 520 | return SOFTBUS_DISCOVER_COAP_START_DISCOVER_FAIL; | 490 | return SOFTBUS_DISCOVER_COAP_START_DISCOVER_FAIL; |
| 521 | } | 491 | } |
| 522 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 492 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 523 | - DISC_LOGI(DISC_COAP, "coap start active discovery succ, filters=%{public}u", g_subscribeMgr->allCap[0]); | 493 | + DISC_LOGI(DISC_COAP, "coap start active discovery succ, filters=%{public}u", g_discCoapMgr.subscribeInfo.allCap[0]); |
| 524 | return SOFTBUS_OK; | 494 | return SOFTBUS_OK; |
| 525 | } | 495 | } |
| 526 | 496 | ||
| @@ -554,11 +524,12 @@ static int32_t CoapSubscribe(const SubscribeOption *option) | |||
| 554 | static int32_t StopDisc(const SubscribeOption *option, bool isActive) | 524 | static int32_t StopDisc(const SubscribeOption *option, bool isActive) |
| 555 | { | 525 | { |
| 556 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(NULL, option, false), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); | 526 | DISC_CHECK_AND_RETURN_RET_LOGE(CheckParam(NULL, option, false), SOFTBUS_INVALID_PARAM, DISC_COAP, "invalid param"); |
| 557 | - DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_subscribeMgr->lock)) == 0, SOFTBUS_LOCK_ERR, | 527 | + DISC_CHECK_AND_RETURN_RET_LOGE(SoftBusMutexLock(&(g_discCoapMgr.lock)) == 0, SOFTBUS_LOCK_ERR, |
| 558 | DISC_COAP, "stop discovery mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); | 528 | DISC_COAP, "stop discovery mutex lock failed. isActive=%{public}s", isActive ? "active" : "passive"); |
| 559 | 529 | ||
| 560 | - if (UnregisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, g_subscribeMgr, MAX_CAP_NUM) != SOFTBUS_OK) { | 530 | + if (UnregisterAllCapBitmap(CAPABILITY_NUM, option->capabilityBitmap, |
| 561 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 531 | + &g_discCoapMgr.subscribeInfo, MAX_CAP_NUM) != SOFTBUS_OK) { |
| 532 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); | ||
| 562 | DISC_LOGE(DISC_COAP, "unRegister discovery capability failed. isActive=%{public}s", | 533 | DISC_LOGE(DISC_COAP, "unRegister discovery capability failed. isActive=%{public}s", |
| 563 | isActive ? "active" : "passive"); | 534 | isActive ? "active" : "passive"); |
| 564 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_CANCEL_CAP_FAIL); | 535 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, SOFTBUS_HISYSEVT_DISCOVER_COAP_CANCEL_CAP_FAIL); |
| @@ -568,22 +539,23 @@ static int32_t StopDisc(const SubscribeOption *option, bool isActive) | |||
| 568 | DiscCoapUpdateAbilityPacked(option->capabilityBitmap[0], (const char *)option->capabilityData, | 539 | DiscCoapUpdateAbilityPacked(option->capabilityBitmap[0], (const char *)option->capabilityData, |
| 569 | option->dataLen, false, false); | 540 | option->dataLen, false, false); |
| 570 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ | 541 | #endif /* DSOFTBUS_FEATURE_DISC_SHARE_COAP */ |
| 571 | - if (!UpdateFilter(true)) { | 542 | + if (!UpdateFilter()) { |
| 572 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 543 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 573 | return SOFTBUS_DISCOVER_COAP_SET_FILTER_CAP_FAIL; | 544 | return SOFTBUS_DISCOVER_COAP_SET_FILTER_CAP_FAIL; |
| 574 | } | 545 | } |
| 575 | - if (isActive && g_subscribeMgr->isEmpty) { | 546 | + if (isActive && g_discCoapMgr.subscribeInfo.isEmpty) { |
| 576 | if (DiscCoapStopDiscovery() != SOFTBUS_OK) { | 547 | if (DiscCoapStopDiscovery() != SOFTBUS_OK) { |
| 577 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 548 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 578 | - DISC_LOGE(DISC_COAP, "coap stop active discovery failed, filters=%{public}u", g_subscribeMgr->allCap[0]); | 549 | + DISC_LOGE(DISC_COAP, "coap stop active discovery failed, filters=%{public}u", |
| 550 | + g_discCoapMgr.subscribeInfo.allCap[0]); | ||
| 579 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, | 551 | SoftbusReportDiscFault(SOFTBUS_HISYSEVT_DISC_MEDIUM_COAP, |
| 580 | SOFTBUS_HISYSEVT_DISCOVER_COAP_STOP_DISCOVER_FAIL); | 552 | SOFTBUS_HISYSEVT_DISCOVER_COAP_STOP_DISCOVER_FAIL); |
| 581 | return SOFTBUS_DISCOVER_COAP_STOP_DISCOVER_FAIL; | 553 | return SOFTBUS_DISCOVER_COAP_STOP_DISCOVER_FAIL; |
| 582 | } | 554 | } |
| 583 | } | 555 | } |
| 584 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 556 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 585 | DISC_LOGI(DISC_COAP, "coap stop discovery succ, isActive=%{public}s, filters=%{public}u", | 557 | DISC_LOGI(DISC_COAP, "coap stop discovery succ, isActive=%{public}s, filters=%{public}u", |
| 586 | - isActive ? "active" : "passive", g_subscribeMgr->allCap[0]); | 558 | + isActive ? "active" : "passive", g_discCoapMgr.subscribeInfo.allCap[0]); |
| 587 | return SOFTBUS_OK; | 559 | return SOFTBUS_OK; |
| 588 | } | 560 | } |
| 589 | 561 | ||
| @@ -634,43 +606,17 @@ static DiscoveryFuncInterface g_discCoapFuncInterface = { | |||
| 634 | .UpdateLocalDeviceInfo = CoapUpdateLocalDeviceInfo | 606 | .UpdateLocalDeviceInfo = CoapUpdateLocalDeviceInfo |
| 635 | }; | 607 | }; |
| 636 | 608 | ||
| 637 | -static DiscCoapInfo *NewDiscCoapInfo(void) | ||
| 638 | -{ | ||
| 639 | - DiscCoapInfo *coapInfo = (DiscCoapInfo*)SoftBusCalloc(sizeof(DiscCoapInfo)); | ||
| 640 | - DISC_CHECK_AND_RETURN_RET_LOGE(coapInfo != NULL, NULL, DISC_INIT, "softbus malloc failed"); | ||
| 641 | - | ||
| 642 | - if (SoftBusMutexInit(&(coapInfo->lock), NULL) != 0) { | ||
| 643 | - SoftBusFree(coapInfo); | ||
| 644 | - return NULL; | ||
| 645 | - } | ||
| 646 | - return coapInfo; | ||
| 647 | -} | ||
| 648 | - | ||
| 649 | -static void DeleteDiscCoapInfo(DiscCoapInfo *coapInfo) | ||
| 650 | -{ | ||
| 651 | - DISC_CHECK_AND_RETURN_LOGE(coapInfo != NULL, DISC_COAP, "coapInfo=NULL"); | ||
| 652 | - (void)SoftBusMutexDestroy(&(coapInfo->lock)); | ||
| 653 | - SoftBusFree(coapInfo); | ||
| 654 | -} | ||
| 655 | - | ||
| 656 | static void DeinitCoapManager(void) | 609 | static void DeinitCoapManager(void) |
| 657 | { | 610 | { |
| 658 | - DeleteDiscCoapInfo(g_publishMgr); | 611 | + (void)SoftBusMutexDestroy(&(g_discCoapMgr.lock)); |
| 659 | - g_publishMgr = NULL; | ||
| 660 | - DeleteDiscCoapInfo(g_subscribeMgr); | ||
| 661 | - g_subscribeMgr = NULL; | ||
| 662 | } | 612 | } |
| 663 | 613 | ||
| 664 | static int32_t InitCoapManager(void) | 614 | static int32_t InitCoapManager(void) |
| 665 | { | 615 | { |
| 666 | - if (g_publishMgr == NULL) { | 616 | + SoftBusMutexAttr mutexAttr = { |
| 667 | - g_publishMgr = NewDiscCoapInfo(); | 617 | + .type = SOFTBUS_MUTEX_RECURSIVE, |
| 668 | - } | 618 | + }; |
| 669 | - if (g_subscribeMgr == NULL) { | 619 | + if (SoftBusMutexInit(&(g_discCoapMgr.lock), &mutexAttr) != SOFTBUS_OK) { |
| 670 | - g_subscribeMgr = NewDiscCoapInfo(); | ||
| 671 | - } | ||
| 672 | - if (g_publishMgr == NULL || g_subscribeMgr == NULL) { | ||
| 673 | - DeinitCoapManager(); | ||
| 674 | return SOFTBUS_DISCOVER_COAP_INIT_FAIL; | 620 | return SOFTBUS_DISCOVER_COAP_INIT_FAIL; |
| 675 | } | 621 | } |
| 676 | return SOFTBUS_OK; | 622 | return SOFTBUS_OK; |
| @@ -688,7 +634,7 @@ static void DfxRecordCoapInitEnd(int32_t reason) | |||
| 688 | 634 | ||
| 689 | uint32_t GetDiscCapability(void) | 635 | uint32_t GetDiscCapability(void) |
| 690 | { | 636 | { |
| 691 | - return g_subscribeMgr == NULL ? 0 : g_subscribeMgr->allCap[0]; | 637 | + return g_discCoapMgr.subscribeInfo.allCap[0]; |
| 692 | } | 638 | } |
| 693 | 639 | ||
| 694 | DiscoveryFuncInterface *DiscCoapInit(DiscInnerCallback *discInnerCb) | 640 | DiscoveryFuncInterface *DiscCoapInit(DiscInnerCallback *discInnerCb) |
| @@ -728,30 +674,30 @@ void DiscCoapDeinit(void) | |||
| 728 | 674 | ||
| 729 | static int CoapPubInfoDump(int fd) | 675 | static int CoapPubInfoDump(int fd) |
| 730 | { | 676 | { |
| 731 | - if (SoftBusMutexLock(&(g_publishMgr->lock)) != SOFTBUS_OK) { | 677 | + if (SoftBusMutexLock(&(g_discCoapMgr.lock)) != SOFTBUS_OK) { |
| 732 | - DISC_LOGE(DISC_COAP, "g_publishMgr mutex lock failed."); | 678 | + DISC_LOGE(DISC_COAP, "g_discCoapMgr.publishInfo mutex lock failed."); |
| 733 | return SOFTBUS_LOCK_ERR; | 679 | return SOFTBUS_LOCK_ERR; |
| 734 | } | 680 | } |
| 735 | SOFTBUS_DPRINTF(fd, "\n---------------CoapPublishInfo------------------\n"); | 681 | SOFTBUS_DPRINTF(fd, "\n---------------CoapPublishInfo------------------\n"); |
| 736 | - SOFTBUS_DPRINTF(fd, "publish allCap : %u\n", *(g_publishMgr->allCap)); | 682 | + SOFTBUS_DPRINTF(fd, "publish allCap : %u\n", *(g_discCoapMgr.publishInfo.allCap)); |
| 737 | - SOFTBUS_DPRINTF(fd, "publish capCount : %hd\n", *(g_publishMgr->capCount)); | 683 | + SOFTBUS_DPRINTF(fd, "publish capCount : %hd\n", *(g_discCoapMgr.publishInfo.capCount)); |
| 738 | - SOFTBUS_DPRINTF(fd, "publish isUpdate : %d\n", g_publishMgr->isUpdate); | 684 | + SOFTBUS_DPRINTF(fd, "publish isUpdate : %d\n", g_discCoapMgr.publishInfo.isUpdate); |
| 739 | - SOFTBUS_DPRINTF(fd, "publish isEmpty : %d\n", g_publishMgr->isEmpty); | 685 | + SOFTBUS_DPRINTF(fd, "publish isEmpty : %d\n", g_discCoapMgr.publishInfo.isEmpty); |
| 740 | - (void)SoftBusMutexUnlock(&(g_publishMgr->lock)); | 686 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 741 | return SOFTBUS_OK; | 687 | return SOFTBUS_OK; |
| 742 | } | 688 | } |
| 743 | 689 | ||
| 744 | static int CoapSubInfoDump(int fd) | 690 | static int CoapSubInfoDump(int fd) |
| 745 | { | 691 | { |
| 746 | - if (SoftBusMutexLock(&(g_subscribeMgr->lock)) != SOFTBUS_OK) { | 692 | + if (SoftBusMutexLock(&(g_discCoapMgr.lock)) != SOFTBUS_OK) { |
| 747 | - DISC_LOGE(DISC_COAP, "g_subscribeMgr mutex lock failed."); | 693 | + DISC_LOGE(DISC_COAP, "g_discCoapMgr.subscribeInfo mutex lock failed."); |
| 748 | return SOFTBUS_LOCK_ERR; | 694 | return SOFTBUS_LOCK_ERR; |
| 749 | } | 695 | } |
| 750 | SOFTBUS_DPRINTF(fd, "\n---------------CoapSubscribeInfo------------------\n"); | 696 | SOFTBUS_DPRINTF(fd, "\n---------------CoapSubscribeInfo------------------\n"); |
| 751 | - SOFTBUS_DPRINTF(fd, "subscribe allCap : %u\n", *(g_subscribeMgr->allCap)); | 697 | + SOFTBUS_DPRINTF(fd, "subscribe allCap : %u\n", *(g_discCoapMgr.subscribeInfo.allCap)); |
| 752 | - SOFTBUS_DPRINTF(fd, "subscribe capCount : %hd\n", *(g_subscribeMgr->capCount)); | 698 | + SOFTBUS_DPRINTF(fd, "subscribe capCount : %hd\n", *(g_discCoapMgr.subscribeInfo.capCount)); |
| 753 | - SOFTBUS_DPRINTF(fd, "subscribe isUpdate : %d\n", g_subscribeMgr->isUpdate); | 699 | + SOFTBUS_DPRINTF(fd, "subscribe isUpdate : %d\n", g_discCoapMgr.subscribeInfo.isUpdate); |
| 754 | - SOFTBUS_DPRINTF(fd, "subscribe isEmpty : %d\n", g_subscribeMgr->isEmpty); | 700 | + SOFTBUS_DPRINTF(fd, "subscribe isEmpty : %d\n", g_discCoapMgr.subscribeInfo.isEmpty); |
| 755 | - (void)SoftBusMutexUnlock(&(g_subscribeMgr->lock)); | 701 | + (void)SoftBusMutexUnlock(&(g_discCoapMgr.lock)); |
| 756 | return SOFTBUS_OK; | 702 | return SOFTBUS_OK; |
| 757 | } | 703 | } |
| @@ -116,9 +116,9 @@ HWTEST_F(DiscCoapTest, CoapPublish002, TestSize.Level1) | |||
| 116 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); | 116 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); |
| 117 | EXPECT_EQ(tmp, nullptr); | 117 | EXPECT_EQ(tmp, nullptr); |
| 118 | int32_t ret = g_discCoapFuncInterface->Publish(&g_testPubOption); | 118 | int32_t ret = g_discCoapFuncInterface->Publish(&g_testPubOption); |
| 119 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 119 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 120 | ret = g_discCoapFuncInterface->Unpublish(&g_testPubOption); | 120 | ret = g_discCoapFuncInterface->Unpublish(&g_testPubOption); |
| 121 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 121 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 122 | 122 | ||
| 123 | DiscCoapDeinit(); | 123 | DiscCoapDeinit(); |
| 124 | g_discCoapFuncInterface = nullptr; | 124 | g_discCoapFuncInterface = nullptr; |
| @@ -248,9 +248,9 @@ HWTEST_F(DiscCoapTest, CoapStartScan002, TestSize.Level1) | |||
| 248 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); | 248 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); |
| 249 | EXPECT_EQ(tmp, nullptr); | 249 | EXPECT_EQ(tmp, nullptr); |
| 250 | int32_t ret = g_discCoapFuncInterface->StartScan(&g_testPubOption); | 250 | int32_t ret = g_discCoapFuncInterface->StartScan(&g_testPubOption); |
| 251 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 251 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 252 | ret = g_discCoapFuncInterface->StopScan(&g_testPubOption); | 252 | ret = g_discCoapFuncInterface->StopScan(&g_testPubOption); |
| 253 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 253 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 254 | 254 | ||
| 255 | DiscCoapDeinit(); | 255 | DiscCoapDeinit(); |
| 256 | g_discCoapFuncInterface = nullptr; | 256 | g_discCoapFuncInterface = nullptr; |
| @@ -339,9 +339,9 @@ HWTEST_F(DiscCoapTest, CoapStartAdvertise002, TestSize.Level1) | |||
| 339 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); | 339 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); |
| 340 | EXPECT_EQ(tmp, nullptr); | 340 | EXPECT_EQ(tmp, nullptr); |
| 341 | int32_t ret = g_discCoapFuncInterface->StartAdvertise(&g_testSubOption); | 341 | int32_t ret = g_discCoapFuncInterface->StartAdvertise(&g_testSubOption); |
| 342 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 342 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 343 | ret = g_discCoapFuncInterface->StopAdvertise(&g_testSubOption); | 343 | ret = g_discCoapFuncInterface->StopAdvertise(&g_testSubOption); |
| 344 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 344 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 345 | 345 | ||
| 346 | DiscCoapDeinit(); | 346 | DiscCoapDeinit(); |
| 347 | g_discCoapFuncInterface = nullptr; | 347 | g_discCoapFuncInterface = nullptr; |
| @@ -466,9 +466,9 @@ HWTEST_F(DiscCoapTest, CoapSubscribe002, TestSize.Level1) | |||
| 466 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); | 466 | DiscoveryFuncInterface *tmp = DiscCoapInit(nullptr); |
| 467 | EXPECT_EQ(tmp, nullptr); | 467 | EXPECT_EQ(tmp, nullptr); |
| 468 | int32_t ret = g_discCoapFuncInterface->Subscribe(&g_testSubOption); | 468 | int32_t ret = g_discCoapFuncInterface->Subscribe(&g_testSubOption); |
| 469 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 469 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 470 | ret = g_discCoapFuncInterface->Unsubscribe(&g_testSubOption); | 470 | ret = g_discCoapFuncInterface->Unsubscribe(&g_testSubOption); |
| 471 | - EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM); | 471 | + EXPECT_EQ(ret, SOFTBUS_LOCK_ERR); |
| 472 | 472 | ||
| 473 | DiscCoapDeinit(); | 473 | DiscCoapDeinit(); |
| 474 | g_discCoapFuncInterface = nullptr; | 474 | g_discCoapFuncInterface = nullptr; |