From 29a44fa412a6dcbf2fb2206b6dc25259117eed28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Wed, 26 Feb 2025 16:04:48 +0800 Subject: [PATCH 1/8] =?UTF-8?q?publishId=E5=86=85=E9=83=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- .../include/advertise/advertise_manager.h | 11 ++- .../service/include/device_manager_service.h | 1 + .../src/advertise/advertise_manager.cpp | 89 +++++++++++++++++-- .../service/src/device_manager_service.cpp | 6 ++ .../src/ipc/standard/ipc_server_stub.cpp | 1 + .../UTTest_device_manager_service.cpp | 8 +- 6 files changed, 107 insertions(+), 9 deletions(-) diff --git a/services/service/include/advertise/advertise_manager.h b/services/service/include/advertise/advertise_manager.h index e9aa5ad4a..adbc42832 100644 --- a/services/service/include/advertise/advertise_manager.h +++ b/services/service/include/advertise/advertise_manager.h @@ -28,14 +28,23 @@ public: int32_t StartAdvertising(const std::string &pkgName, const std::map &advertiseParam); int32_t StopAdvertising(const std::string &pkgName, int32_t publishId); + void ClearPulishIdCache(const std::string &pkgName); private: void HandleAutoStopAdvertise(const std::string &timerName, const std::string &pkgName, int32_t publishId); - void ConfigAdvParam(const std::map &advertiseParam, DmPublishInfo *dmPubInfo); + void ConfigAdvParam(const std::map &advertiseParam, DmPublishInfo *dmPubInfo, + const std::string &pkgName); + int32_t GenInnerPublishId(const std::string &pkgName, int32_t publishId); + int32_t GetAndRemoveInnerPublishId(const std::string &pkgName, int32_t publishId); + void StopPublishLnnByPkgName(const std::string &pkgName); private: std::shared_ptr timer_; std::shared_ptr softbusListener_; + + std::mutex pubMapLock; + std::map> pkgName2PubIdMap_; + std::set publishIdSet; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/service/include/device_manager_service.h b/services/service/include/device_manager_service.h index 3e9718169..6b70ff2d9 100644 --- a/services/service/include/device_manager_service.h +++ b/services/service/include/device_manager_service.h @@ -230,6 +230,7 @@ public: int32_t UpdateServiceInfo(const DMServiceInfo &serviceInfo); int32_t GetServiceInfoById(int64_t serviceId, DMServiceInfo &serviceInfo); int32_t GetCallerServiceInfos(std::vector &serviceInfos); + void ClearPulishIdCache(const std::string &pkgName); private: bool IsDMServiceImplReady(); diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index ef2abd1e9..1e98206ed 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -18,11 +18,15 @@ #include "dm_constants.h" #include "dm_log.h" #include "dm_publish_info.h" +#include "dm_random.h" namespace OHOS { namespace DistributedHardware { const int32_t AUTO_STOP_ADVERTISE_DEFAULT_TIME = 120; const std::string AUTO_STOP_ADVERTISE_TASK = "AutoStopAdvertisingTask"; +const int32_t DM_MIN_RANDOM = 1; +const int32_t DM_MAX_RANDOM = INT32_MAX; +const uint16_t DM_INVALID_FLAG_ID = 0; AdvertiseManager::AdvertiseManager(std::shared_ptr softbusListener) : softbusListener_(softbusListener) { @@ -32,6 +36,10 @@ AdvertiseManager::AdvertiseManager(std::shared_ptr softbusListe AdvertiseManager::~AdvertiseManager() { LOGI("AdvertiseManager destructor."); + auto iter = pkgName2PubIdMap_.begin(); + while (iter != pkgName2PubIdMap_.end()) { + StopPublishLnnByPkgName(iter.first); + } } int32_t AdvertiseManager::StartAdvertising(const std::string &pkgName, @@ -43,7 +51,7 @@ int32_t AdvertiseManager::StartAdvertising(const std::string &pkgName, return ERR_DM_INPUT_PARA_INVALID; } DmPublishInfo dmPubInfo; - ConfigAdvParam(advertiseParam, &dmPubInfo); + ConfigAdvParam(advertiseParam, &dmPubInfo, pkgName); std::string capability = DM_CAPABILITY_OSD; if (advertiseParam.find(PARAM_KEY_DISC_CAPABILITY) != advertiseParam.end()) { capability = advertiseParam.find(PARAM_KEY_DISC_CAPABILITY)->second; @@ -84,7 +92,7 @@ int32_t AdvertiseManager::StartAdvertising(const std::string &pkgName, } void AdvertiseManager::ConfigAdvParam(const std::map &advertiseParam, - DmPublishInfo *dmPubInfo) + DmPublishInfo *dmPubInfo, const std::string &pkgName) { if (dmPubInfo == nullptr) { LOGE("ConfigAdvParam failed, dmPubInfo is nullptr."); @@ -100,7 +108,11 @@ void AdvertiseManager::ConfigAdvParam(const std::map & LOGI("StartAdvertising input MetaType=%{public}s", (advertiseParam.find(PARAM_KEY_META_TYPE)->second).c_str()); } if (advertiseParam.find(PARAM_KEY_PUBLISH_ID) != advertiseParam.end()) { - dmPubInfo->publishId = std::atoi((advertiseParam.find(PARAM_KEY_PUBLISH_ID)->second).c_str()); + if (IsNumberString(advertiseParam.find(PARAM_KEY_PUBLISH_ID)->second)) { + int32_t publishId = std::atoi((advertiseParam.find(PARAM_KEY_PUBLISH_ID)->second).c_str()); + LOGI("PublishId=%{public}d", publishId); + dmPubInfo->publishId = GenInnerPublishId(pkgName, publishId); + } } if (advertiseParam.find(PARAM_KEY_DISC_MODE) != advertiseParam.end()) { dmPubInfo->mode = @@ -120,12 +132,18 @@ void AdvertiseManager::ConfigAdvParam(const std::map & int32_t AdvertiseManager::StopAdvertising(const std::string &pkgName, int32_t publishId) { - LOGI("AdvertiseManager::StopDiscovering begin for pkgName = %{public}s.", pkgName.c_str()); + LOGI("AdvertiseManager::StopDiscovering begin for pkgName = %{public}s, publishId = %{public}d.", pkgName.c_str(), + publishId); if (pkgName.empty()) { LOGE("Invalid parameter, pkgName is empty."); return ERR_DM_INPUT_PARA_INVALID; } - return softbusListener_->StopPublishSoftbusLNN(publishId); + int32_t tempPublishId = GetAndRemoveInnerPublishId(pkgName, publishId); + if (tempPublishId == DM_INVALID_FLAG_ID) { + LOGE("Failed: cannot find pkgName in cache map."); + return ERR_DM_INPUT_PARA_INVALID; + } + return softbusListener_->StopPublishSoftbusLNN(tempPublishId); } void AdvertiseManager::HandleAutoStopAdvertise(const std::string &timerName, const std::string &pkgName, @@ -134,5 +152,66 @@ void AdvertiseManager::HandleAutoStopAdvertise(const std::string &timerName, con LOGI("HandleAutoStopAdvertise, auto stop advertise task timeout, timerName=%{public}s", timerName.c_str()); StopAdvertising(pkgName, publishId); } + +int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t publishId) +{ + int32_t tempPublishId = DM_INVALID_FLAG_ID; + { + std::lock_guard autoLock(pubMapLock); + if (pkgName2PubIdMap_[pkgName].find(publishId) != pkgName2PubIdMap_[pkgName].end()) { + softbusListener_->StopPublishSoftbusLNN(pkgName2PubIdMap_[pkgName][publishId]); + } + if (pkgName2PubIdMap_.find(pkgName) == pkgName2PubIdMap_.end()) { + pkgName2PubIdMap_[pkgName] = std::map(); + } + bool isExist = false; + do { + tempPublishId = GenRandInt(DM_MIN_RANDOM, DM_MAX_RANDOM); + if (publishIdSet.find(tempPublishId) != publishIdSet.end()) { + isExist = true; + } + isExist = false; + } while (isExist); + + pkgName2PubIdMap_[pkgName][publishId] = tempPublishId; + } + return tempPublishId; +} + +int32_t AdvertiseManager::GetAndRemoveInnerPublishId(const std::string &pkgName, int32_t publishId) +{ + uint16_t tempPublishId = DM_INVALID_FLAG_ID; + { + std::lock_guard autoLock(pubMapLock); + if (pkgName2PubIdMap_.find(pkgName) != pkgName2PubIdMap_.end() && + pkgName2PubIdMap_[pkgName].find(publishId) != pkgName2PubIdMap_[pkgName].end()) { + tempPublishId = pkgName2PubIdMap_[pkgName][publishId]; + pkgName2PubIdMap_[pkgName].erase(publishId); + publishIdSet.erase(tempPublishId); + } + if (pkgName2PubIdMap_[pkgName].empty()) { + pkgName2PubIdMap_.erase(pkgName); + } + } + return tempPublishId; +} + +void AdvertiseManager::ClearPulishIdCache(const std::string &pkgName) +{ + LOGI("Begin for pkgName = %{public}s.", pkgName.c_str()); + if (pkgName.empty()) { + LOGE("Invalid parameter, pkgName is empty."); + return; + } + StopPublishLnnByPkgName(pkgName); + pkgName2PubIdMap_.erase(pkgName); +} + +void AdvertiseManager::StopPublishLnnByPkgName(const std::string &pkgName) +{ + for (auto iter : pkgName2PubIdMap_[pkgName]) { + softbusListener_->StopPublishSoftbusLNN(iter.second); + } +} } // namespace DistributedHardware } // namespace OHOS diff --git a/services/service/src/device_manager_service.cpp b/services/service/src/device_manager_service.cpp index 3b8184201..00ba42873 100644 --- a/services/service/src/device_manager_service.cpp +++ b/services/service/src/device_manager_service.cpp @@ -2951,5 +2951,11 @@ void DeviceManagerService::AddHmlInfoToBindParam(int32_t actionId, std::string & bindParam = std::string(str); cJSON_Delete(bindParamObj); } + +void DeviceManagerService::ClearPulishIdCache(const std::string &pkgName) +{ + CHECK_NULL_VOID(advertiseMgr_); + advertiseMgr_->ClearPulishIdCache(pkgName); +} } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file diff --git a/services/service/src/ipc/standard/ipc_server_stub.cpp b/services/service/src/ipc/standard/ipc_server_stub.cpp index 04eafcf97..6a1d4209d 100644 --- a/services/service/src/ipc/standard/ipc_server_stub.cpp +++ b/services/service/src/ipc/standard/ipc_server_stub.cpp @@ -355,6 +355,7 @@ void AppDeathRecipient::OnRemoteDied(const wptr &remote) IpcServerStub::GetInstance().UnRegisterDeviceManagerListener(processInfo); DeviceManagerService::GetInstance().ClearDiscoveryCache(processInfo); DeviceManagerServiceNotify::GetInstance().ClearDiedProcessCallback(processInfo); + DeviceManagerService::GetInstance().ClearPulishIdCache(processInfo.pkgName); } void IpcServerStub::AddSystemSA(const std::string &pkgName) diff --git a/test/unittest/UTTest_device_manager_service.cpp b/test/unittest/UTTest_device_manager_service.cpp index 4e37e0fa6..11428534c 100644 --- a/test/unittest/UTTest_device_manager_service.cpp +++ b/test/unittest/UTTest_device_manager_service.cpp @@ -200,7 +200,7 @@ HWTEST_F(DeviceManagerServiceTest, PublishDeviceDiscovery_004, testing::ext::Tes int ret = DeviceManagerService::GetInstance().PublishDeviceDiscovery(pkgName, publishInfo); pkgName = "1com.ohos.test1"; ret = DeviceManagerService::GetInstance().PublishDeviceDiscovery(pkgName, publishInfo); - EXPECT_TRUE(ret == SOFTBUS_IPC_ERR || ret == SOFTBUS_DISCOVER_MANAGER_DUPLICATE_PARAM); + EXPECT_TRUE(ret == SOFTBUS_IPC_ERR || ret == SOFTBUS_DISCOVER_MANAGER_DUPLICATE_PARAM || ret == DM_OK); DeviceManagerService::GetInstance().UninitDMServiceListener(); } @@ -246,7 +246,8 @@ HWTEST_F(DeviceManagerServiceTest, UnPublishDeviceDiscovery_003, testing::ext::T int32_t publishId = 1; DeviceManagerService::GetInstance().InitDMServiceListener(); int ret = DeviceManagerService::GetInstance().UnPublishDeviceDiscovery(pkgName, publishId); - EXPECT_TRUE(ret == SOFTBUS_DISCOVER_COAP_STOP_PUBLISH_FAIL || ret == SOFTBUS_ERR); + EXPECT_TRUE(ret == SOFTBUS_DISCOVER_COAP_STOP_PUBLISH_FAIL || ret == SOFTBUS_ERR || + ret == ERR_DM_INPUT_PARA_INVALID); DeviceManagerService::GetInstance().UninitDMServiceListener(); } @@ -1908,7 +1909,8 @@ HWTEST_F(DeviceManagerServiceTest, StopAdvertising_004, testing::ext::TestSize.L std::map advertiseParam; DeviceManagerService::GetInstance().InitDMServiceListener(); int32_t ret = DeviceManagerService::GetInstance().StopAdvertising(pkgName, advertiseParam); - EXPECT_TRUE(ret == SOFTBUS_DISCOVER_COAP_STOP_PUBLISH_FAIL || ret == SOFTBUS_ERR); + EXPECT_TRUE(ret == SOFTBUS_DISCOVER_COAP_STOP_PUBLISH_FAIL || ret == SOFTBUS_ERR || + ret == ERR_DM_INPUT_PARA_INVALID); DeviceManagerService::GetInstance().UninitDMServiceListener(); } -- Gitee From 55567b2b11348bce910463f18b195b0de449ed3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Wed, 26 Feb 2025 16:22:26 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/advertise/advertise_manager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index 1e98206ed..22e145f27 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -36,8 +36,7 @@ AdvertiseManager::AdvertiseManager(std::shared_ptr softbusListe AdvertiseManager::~AdvertiseManager() { LOGI("AdvertiseManager destructor."); - auto iter = pkgName2PubIdMap_.begin(); - while (iter != pkgName2PubIdMap_.end()) { + for (auto iter : pkgName2PubIdMap_) { StopPublishLnnByPkgName(iter.first); } } -- Gitee From 39f7a95e8c8e3f9bbb4c06ac1a1399430d5d50e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Wed, 26 Feb 2025 16:44:21 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- .../include/advertise/advertise_manager.h | 3 +-- .../src/advertise/advertise_manager.cpp | 18 ++++++------------ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/services/service/include/advertise/advertise_manager.h b/services/service/include/advertise/advertise_manager.h index adbc42832..69616ba51 100644 --- a/services/service/include/advertise/advertise_manager.h +++ b/services/service/include/advertise/advertise_manager.h @@ -36,7 +36,6 @@ private: const std::string &pkgName); int32_t GenInnerPublishId(const std::string &pkgName, int32_t publishId); int32_t GetAndRemoveInnerPublishId(const std::string &pkgName, int32_t publishId); - void StopPublishLnnByPkgName(const std::string &pkgName); private: std::shared_ptr timer_; @@ -44,7 +43,7 @@ private: std::mutex pubMapLock; std::map> pkgName2PubIdMap_; - std::set publishIdSet; + std::set publishIdSet_; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index 22e145f27..48922e1c0 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -36,9 +36,6 @@ AdvertiseManager::AdvertiseManager(std::shared_ptr softbusListe AdvertiseManager::~AdvertiseManager() { LOGI("AdvertiseManager destructor."); - for (auto iter : pkgName2PubIdMap_) { - StopPublishLnnByPkgName(iter.first); - } } int32_t AdvertiseManager::StartAdvertising(const std::string &pkgName, @@ -166,12 +163,12 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t bool isExist = false; do { tempPublishId = GenRandInt(DM_MIN_RANDOM, DM_MAX_RANDOM); - if (publishIdSet.find(tempPublishId) != publishIdSet.end()) { + if (publishIdSet_.find(tempPublishId) != publishIdSet_.end()) { isExist = true; } isExist = false; } while (isExist); - + publishIdSet_.push_back(tempPublishId); pkgName2PubIdMap_[pkgName][publishId] = tempPublishId; } return tempPublishId; @@ -186,7 +183,7 @@ int32_t AdvertiseManager::GetAndRemoveInnerPublishId(const std::string &pkgName, pkgName2PubIdMap_[pkgName].find(publishId) != pkgName2PubIdMap_[pkgName].end()) { tempPublishId = pkgName2PubIdMap_[pkgName][publishId]; pkgName2PubIdMap_[pkgName].erase(publishId); - publishIdSet.erase(tempPublishId); + publishIdSet_.erase(tempPublishId); } if (pkgName2PubIdMap_[pkgName].empty()) { pkgName2PubIdMap_.erase(pkgName); @@ -202,15 +199,12 @@ void AdvertiseManager::ClearPulishIdCache(const std::string &pkgName) LOGE("Invalid parameter, pkgName is empty."); return; } - StopPublishLnnByPkgName(pkgName); - pkgName2PubIdMap_.erase(pkgName); -} - -void AdvertiseManager::StopPublishLnnByPkgName(const std::string &pkgName) -{ + std::lock_guard autoLock(pubMapLock); for (auto iter : pkgName2PubIdMap_[pkgName]) { softbusListener_->StopPublishSoftbusLNN(iter.second); + publishIdSet_.erase(iter.second); } + pkgName2PubIdMap_.erase(pkgName); } } // namespace DistributedHardware } // namespace OHOS -- Gitee From e46ecc2b07c8a672e091c1477ecf7cc22ca5bb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Wed, 26 Feb 2025 17:34:53 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/advertise/advertise_manager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index 48922e1c0..ce23d4c67 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -164,9 +164,12 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t do { tempPublishId = GenRandInt(DM_MIN_RANDOM, DM_MAX_RANDOM); if (publishIdSet_.find(tempPublishId) != publishIdSet_.end()) { + LOGE("The temPublishId: %{public}d is exist.", tempPublishId); isExist = true; + } else { + LOGI("The temPublishId: %{public}d is not exist.", tempPublishId); + isExist = false; } - isExist = false; } while (isExist); publishIdSet_.push_back(tempPublishId); pkgName2PubIdMap_[pkgName][publishId] = tempPublishId; -- Gitee From 190725a936c4dd6cd43d6b309f0af12adb99b6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Thu, 27 Feb 2025 09:41:58 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/advertise/advertise_manager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index ce23d4c67..22a47591e 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -156,6 +156,7 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t std::lock_guard autoLock(pubMapLock); if (pkgName2PubIdMap_[pkgName].find(publishId) != pkgName2PubIdMap_[pkgName].end()) { softbusListener_->StopPublishSoftbusLNN(pkgName2PubIdMap_[pkgName][publishId]); + publishIdSet_.erase(pkgName2PubIdMap_[pkgName][publishId]); } if (pkgName2PubIdMap_.find(pkgName) == pkgName2PubIdMap_.end()) { pkgName2PubIdMap_[pkgName] = std::map(); -- Gitee From cb73ce3f869354bc4de4e146eb7412b22b56fed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Thu, 27 Feb 2025 09:56:20 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/include/advertise/advertise_manager.h | 2 +- services/service/src/advertise/advertise_manager.cpp | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/services/service/include/advertise/advertise_manager.h b/services/service/include/advertise/advertise_manager.h index 69616ba51..c20f77d32 100644 --- a/services/service/include/advertise/advertise_manager.h +++ b/services/service/include/advertise/advertise_manager.h @@ -41,7 +41,7 @@ private: std::shared_ptr timer_; std::shared_ptr softbusListener_; - std::mutex pubMapLock; + std::mutex pubMapLock_; std::map> pkgName2PubIdMap_; std::set publishIdSet_; }; diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index 22a47591e..a2dcaf2c6 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -153,7 +153,7 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t { int32_t tempPublishId = DM_INVALID_FLAG_ID; { - std::lock_guard autoLock(pubMapLock); + std::lock_guard autoLock(pubMapLock_); if (pkgName2PubIdMap_[pkgName].find(publishId) != pkgName2PubIdMap_[pkgName].end()) { softbusListener_->StopPublishSoftbusLNN(pkgName2PubIdMap_[pkgName][publishId]); publishIdSet_.erase(pkgName2PubIdMap_[pkgName][publishId]); @@ -165,10 +165,9 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t do { tempPublishId = GenRandInt(DM_MIN_RANDOM, DM_MAX_RANDOM); if (publishIdSet_.find(tempPublishId) != publishIdSet_.end()) { - LOGE("The temPublishId: %{public}d is exist.", tempPublishId); + LOGE("The tempPublishId: %{public}d is exist.", tempPublishId); isExist = true; } else { - LOGI("The temPublishId: %{public}d is not exist.", tempPublishId); isExist = false; } } while (isExist); @@ -182,7 +181,7 @@ int32_t AdvertiseManager::GetAndRemoveInnerPublishId(const std::string &pkgName, { uint16_t tempPublishId = DM_INVALID_FLAG_ID; { - std::lock_guard autoLock(pubMapLock); + std::lock_guard autoLock(pubMapLock_); if (pkgName2PubIdMap_.find(pkgName) != pkgName2PubIdMap_.end() && pkgName2PubIdMap_[pkgName].find(publishId) != pkgName2PubIdMap_[pkgName].end()) { tempPublishId = pkgName2PubIdMap_[pkgName][publishId]; @@ -203,7 +202,7 @@ void AdvertiseManager::ClearPulishIdCache(const std::string &pkgName) LOGE("Invalid parameter, pkgName is empty."); return; } - std::lock_guard autoLock(pubMapLock); + std::lock_guard autoLock(pubMapLock_); for (auto iter : pkgName2PubIdMap_[pkgName]) { softbusListener_->StopPublishSoftbusLNN(iter.second); publishIdSet_.erase(iter.second); -- Gitee From 477682ebf105c98c5aed47a063d15b8248dcebc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Thu, 27 Feb 2025 10:13:19 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/advertise/advertise_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index a2dcaf2c6..a826c7193 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -171,7 +171,7 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t isExist = false; } } while (isExist); - publishIdSet_.push_back(tempPublishId); + publishIdSet_.emplace(tempPublishId); pkgName2PubIdMap_[pkgName][publishId] = tempPublishId; } return tempPublishId; -- Gitee From be7b736ef9950a535bb8bc08a9a2b969db8abffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Thu, 27 Feb 2025 15:17:48 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/advertise/advertise_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/service/src/advertise/advertise_manager.cpp b/services/service/src/advertise/advertise_manager.cpp index a826c7193..b5205258c 100644 --- a/services/service/src/advertise/advertise_manager.cpp +++ b/services/service/src/advertise/advertise_manager.cpp @@ -26,7 +26,7 @@ const int32_t AUTO_STOP_ADVERTISE_DEFAULT_TIME = 120; const std::string AUTO_STOP_ADVERTISE_TASK = "AutoStopAdvertisingTask"; const int32_t DM_MIN_RANDOM = 1; const int32_t DM_MAX_RANDOM = INT32_MAX; -const uint16_t DM_INVALID_FLAG_ID = 0; +const int32_t DM_INVALID_FLAG_ID = 0; AdvertiseManager::AdvertiseManager(std::shared_ptr softbusListener) : softbusListener_(softbusListener) { @@ -179,7 +179,7 @@ int32_t AdvertiseManager::GenInnerPublishId(const std::string &pkgName, int32_t int32_t AdvertiseManager::GetAndRemoveInnerPublishId(const std::string &pkgName, int32_t publishId) { - uint16_t tempPublishId = DM_INVALID_FLAG_ID; + int32_t tempPublishId = DM_INVALID_FLAG_ID; { std::lock_guard autoLock(pubMapLock_); if (pkgName2PubIdMap_.find(pkgName) != pkgName2PubIdMap_.end() && -- Gitee