diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map b/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map index 436338e66a97b03b21f1dfbba1cae67d1dfe35bd..d2754122091218de0263f093d841fe7a218348f8 100755 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map @@ -473,6 +473,7 @@ "OHOS::Wifi::ApConfigUse::GetApVaildChannel(OHOS::Wifi::BandType, std::__h::vector>&) const"; "OHOS::Wifi::ApConfigUse::UpdateApChannelConfig(OHOS::Wifi::HotspotConfig&) const"; "OHOS::Wifi::WifiSettings::IsRandomMacDisabled(int)"; + "OHOS::Wifi::WifiSettings::SetRandomMacDisabled(bool, int)"; }; local: *; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h index 4d4ddaa1c43e54f41f6cc7a981fa6b3c1440ad48..6f8f0f6808d22fbfa8140d254e8c211666c6ce25 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h @@ -251,14 +251,6 @@ public: */ virtual ErrCode SetSuspendMode(bool mode) = 0; - /** - * @Description Set Random Mac Disabled. - * - * @param isRandomMacDisabled: True for disabled False for enabled - * @return WifiErrorNo - */ - virtual ErrCode SetRandomMacDisabled(bool isRandomMacDisabled) = 0; - /** * @Description send power mode for wpa. * @@ -481,6 +473,7 @@ public: virtual ErrCode GetSignalPollInfoArray(std::vector &wifiSignalPollInfos, int length) = 0; +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT /** * @Description Add wifi block list and wifi white list * @@ -488,8 +481,14 @@ public: * @param result - the result of wifi access list * @return ErrCode - operation result */ -#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT virtual ErrCode SetWifiRestrictedList(const std::vector &wifiRestrictedInfoList) = 0; + + /** + * @Description Reconnect By Mdm + * + * @return ErrCode - operation result + */ + virtual ErrCode ReconnectByMdm() = 0; #endif }; } // namespace Wifi diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp index 89807245d78cd81b7158b9f829544488c505ac62..8ec62cc3190a26e6740099cef3042c19e269914a 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp @@ -224,6 +224,14 @@ ErrCode StaInterface::SetWifiRestrictedList(const std::vector lock(mutex); + CHECK_NULL_AND_RETURN(pStaService, WIFI_OPT_FAILED); + return pStaService->ReconnectByMdm(); +} #endif int StaInterface::UpdateDeviceConfig(const WifiDeviceConfig &config) @@ -281,14 +289,6 @@ ErrCode StaInterface::AllowAutoConnect(int32_t networkId, bool isAllowed) return pStaService->AllowAutoConnect(networkId, isAllowed); } -ErrCode StaInterface::SetRandomMacDisabled(bool isRandomMacDisabled) -{ - LOGI("Enter SetRandomMacDisabled, isRandomMacDisabled:%{public}d", isRandomMacDisabled); - std::lock_guard lock(mutex); - CHECK_NULL_AND_RETURN(pStaService, WIFI_OPT_FAILED); - return pStaService->SetRandomMacDisabled(isRandomMacDisabled); -} - ErrCode StaInterface::StartWps(const WpsConfig &config) { LOGI("Enter StartWps.\n"); diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h index fb7ce47ad581eae1bb77cfd9565972d6de3a42c4..ba014bd9480ed28f23bcfe571ade2f00398f5ca8 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h @@ -149,6 +149,7 @@ public: * @Return success: networkId fail: -1 */ virtual int AddDeviceConfig(const WifiDeviceConfig &config) override; +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT /** * @Description Add wifi block list and wifi white list * @@ -156,8 +157,13 @@ public: * @param result - the result of wifi access list * @return ErrCode - operation result */ -#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT virtual ErrCode SetWifiRestrictedList(const std::vector &wifiRestrictedInfoList) override; + /** + * @Description Reconnect By Mdm + * + * @return ErrCode - operation result + */ + ErrCode ReconnectByMdm() override; #endif /** * @Description Update a network to config @@ -254,14 +260,6 @@ public: */ virtual ErrCode SetSuspendMode(bool mode) override; - /** - * @Description Set Random Mac Disabled. - * - * @param isRandomMacDisabled: True for disabled False for enabled - * @return WifiErrorNo - */ - virtual ErrCode SetRandomMacDisabled(bool isRandomMacDisabled) override; - /** * @Description send power mode for wpa. * diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp index f7541982eb8183c3945bebacf1a83454ec0a9ad1..c7b0a4c9c4f53156be66145efc2c7a7504875c52 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp @@ -387,6 +387,31 @@ ErrCode StaService::SetWifiRestrictedList(const std::vector } return WIFI_OPT_SUCCESS; } + +ErrCode StaService::ReconnectByMdm() const +{ + WifiLinkedInfo linkedInfo; + WifiConfigCenter::GetInstance().GetLinkedInfo(linkedInfo); + int networkId = linkedInfo.networkId; + if (networkId == INVALID_NETWORK_ID) { + WIFI_LOGE("No network connect"); + return WIFI_OPT_FAILED; + } + WifiDeviceConfig targetNetwork; + if (WifiSettings::GetInstance().GetDeviceConfig(networkId, targetNetwork)) { + WIFI_LOGE("Failed tot get device config"); + return WIFI_OPT_FAILED; + } + + if (targetNetwork.wifiPrivacySetting == WifiPrivacyConfig::RANDOMMAC) { + Disconnect(); + if (ConnectToNetwork(networkId, NETWORK_SELECTED_BY_MDM) != WIFI_OPT_SUCCESS) { + WIFI_LOGE("Connect to network failed"); + return WIFI_OPT_FAILED; + } + } + return WIFI_OPT_SUCCESS; +} #endif int StaService::AddDeviceConfig(const WifiDeviceConfig &config) const @@ -710,41 +735,6 @@ ErrCode StaService::AllowAutoConnect(int32_t networkId, bool isAllowed) const return WIFI_OPT_SUCCESS; } -ErrCode StaService::SetRandomMacDisabled(bool isRandomMacDisabled) const -{ - if (WifiSettings::GetInstance().IsRandomMacDisabled() == isRandomMacDisabled) { - return WIFI_OPT_SUCCESS; - } - WifiSettings::GetInstance().SetRandomMacDisabled(isRandomMacDisabled); - ReconnectByMdm(); - return WIFI_OPT_SUCCESS; -} - -ErrCode StaService::ReconnectByMdm() const -{ - WifiLinkedInfo linkedInfo; - WifiConfigCenter::GetInstance().GetLinkedInfo(linkedInfo); - int networkId = linkedInfo.networkId; - if (networkId == INVALID_NETWORK_ID) { - WIFI_LOGE("No network connect"); - return WIFI_OPT_FAILED; - } - WifiDeviceConfig targetNetwork; - if (WifiSettings::GetInstance().GetDeviceConfig(networkId, targetNetwork)) { - WIFI_LOGE("Failed tot get device config"); - return WIFI_OPT_FAILED; - } - - if (targetNetwork.wifiPrivacySetting == WifiPrivacyConfig::RANDOMMAC) { - Disconnect(); - if (ConnectToNetwork(networkId, NETWORK_SELECTED_BY_MDM) != WIFI_OPT_SUCCESS) { - WIFI_LOGE("Connect to network failed"); - return WIFI_OPT_FAILED; - } - } - return WIFI_OPT_SUCCESS; -} - ErrCode StaService::Disconnect() const { WIFI_LOGI("Enter Disconnect.\n"); diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h index 6423b3e392d1ba50a792b00f3b47c7eff2dc26e5..542eb85418e068e490b538def47fbcb58d9f5586 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h @@ -198,13 +198,6 @@ public: * @return ErrCode - operation result */ virtual ErrCode AllowAutoConnect(int32_t networkId, bool isAllowed) const; - /** - * @Description Set Random Mac Disabled. - * - * @param isRandomMacDisabled: True for Disabled, false for enabled - * @return ErrCode - operation result - */ - virtual ErrCode SetRandomMacDisabled(bool isRandomMacDisabled) const; /** * @Description Start WPS Connection * @@ -458,6 +451,7 @@ public: */ virtual void GetDetectNetState(OperateResState &state); +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT /** * @Description Add wifi block list and wifi white list * @@ -465,11 +459,16 @@ public: * @param result - the result of wifi access list * @return ErrCode - operation result */ -#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT virtual ErrCode SetWifiRestrictedList(const std::vector &wifiRestrictedInfoList) const; + + /** + * @Description Reconnect By Mdm + * + * @return ErrCode - operation result + */ + ErrCode ReconnectByMdm() const; #endif private: - ErrCode ReconnectByMdm() const; void NotifyDeviceConfigChange(ConfigChange value, WifiDeviceConfig config, bool isRemoveAll) const; void NotifyCandidateApprovalStatus(CandidateApprovalStatus status) const; int FindDeviceConfig(const WifiDeviceConfig &config, WifiDeviceConfig &outConfig) const; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp index 1c0ef0983ab9e71cabd52f92ff2ea68800b0e339..92ace8d1fe216e3e077d58ec85901a737ec02fd0 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp @@ -2721,6 +2721,7 @@ bool WifiDeviceServiceImpl::IsDisableWifiProhibitedByEdm(void) ErrCode WifiDeviceServiceImpl::IsRandomMacDisabled(bool &isRandomMacDisabled) { +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT if (WifiPermissionUtils::VerifyGetWifiInfoPermission() == PERMISSION_DENIED) { WIFI_LOGE("IsRandomMacDisabled:VerifyGetWifiInfoPermission() PERMISSION_DENIED!"); return WIFI_OPT_PERMISSION_DENIED; @@ -2733,23 +2734,29 @@ ErrCode WifiDeviceServiceImpl::IsRandomMacDisabled(bool &isRandomMacDisabled) isRandomMacDisabled = WifiSettings::GetInstance().IsRandomMacDisabled(); WIFI_LOGI("Get isRandomMacDisabled success, isRandomMacDisabled= %{public}d", isRandomMacDisabled); return WIFI_OPT_SUCCESS; +#else + return WIFI_OPT_FAILED; +#endif } ErrCode WifiDeviceServiceImpl::SetRandomMacDisabled(bool isRandomMacDisabled) { +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT if (WifiPermissionUtils::VerifyManageEdmPolicyPermission() == PERMISSION_DENIED) { WIFI_LOGE("SetRandomMacDisabeled:VerifyManageEdmPolicyPermission() PERMISSION_DENIED!"); return WIFI_OPT_PERMISSION_DENIED; } - if (!IsStaServiceRunning()) { - return WIFI_OPT_STA_NOT_OPENED; - } + WifiSettings::GetInstance().SetRandomMacDisabled(isRandomMacDisabled); + WIFI_LOGI("Set isRandomMacDisabled success, isRandomMacDisabled= %{public}d", isRandomMacDisabled); IStaService *pService = WifiServiceManager::GetInstance().GetStaServiceInst(m_instId); - if (pService == nullptr) { - return WIFI_OPT_STA_NOT_OPENED; + if (pService != nullptr) { + pService->ReconnectByMdm(); } - return pService->SetRandomMacDisabled(isRandomMacDisabled); + return WIFI_OPT_SUCCESS; +#else + return WIFI_OPT_FAILED; +#endif } } // namespace Wifi } // namespace OHOS diff --git a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp index 6925daf85e13676f5419226152ad028eb79c138f..de19b2bc16d5bbdf1b6e8373741eb791d25aa961 100644 --- a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp +++ b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp @@ -218,12 +218,6 @@ ErrCode StaInterface::EnableAutoJoin(const std::string &conditionName) return WIFI_OPT_SUCCESS; } -ErrCode StaInterface::SetRandomMacDisabled(bool isRandomMacDisabled) -{ - LOGI("Enter SetRandomMacDisabled, isRandomMacDisabled=[%{public}d]!", isRandomMacDisabled); - return WIFI_OPT_SUCCESS; -} - ErrCode StaInterface::RegisterAutoJoinCondition(const std::string &conditionName, const std::function &autoJoinCondition) { @@ -377,6 +371,12 @@ ErrCode StaInterface::SetWifiRestrictedList(const std::vectorSetWifiRestrictedList(wifiRestrictedInfoList); } + +ErrCode StaInterface::ReconnectByMdm() +{ + LOGI("Enter ReconnectByMdm"); + return WIFI_OPT_SUCCESS; +} #endif } // namespace Wifi } // namespace OHOS diff --git a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp index a2305550bce41b6f8b24d45daedd88a501cfa1d6..8bffb37fae4db1b02a32bd516727a71d423db081 100644 --- a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp +++ b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp @@ -120,10 +120,6 @@ public: void StaServiceStartWifiDetectionTest(); #ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT void StaServiceSetWifiRestrictedListSuccess(); - void StaServiceSetRandomMacDisabledTrueSuccess1(); - void StaServiceSetRandomMacDisabledTrueSuccess2(); - void StaServiceSetRandomMacDisabledFalseSuccess1(); - void StaServiceSetRandomMacDisabledFalseSuccess2(); void StaServiceReconnectByMdmTest1(); void StaServiceReconnectByMdmTest2(); @@ -492,38 +488,6 @@ void StaServiceTest::StaServiceDisconnectSuccess() EXPECT_TRUE(pStaService->Disconnect() == WIFI_OPT_SUCCESS); } -void StaServiceTest::StaServiceSetRandomMacDisabledTrueSuccess1() -{ - pStaService->SetRandomMacDisabled(true); - pStaService->SetRandomMacDisabled(true); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, true); -} - -void StaServiceTest::StaServiceSetRandomMacDisabledTrueSuccess2() -{ - pStaService->SetRandomMacDisabled(false); - pStaService->SetRandomMacDisabled(true); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, true); -} - -void StaServiceTest::StaServiceSetRandomMacDisabledFalseSuccess1() -{ - pStaService->SetRandomMacDisabled(true); - pStaService->SetRandomMacDisabled(false); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, false); -} - -void StaServiceTest::StaServiceSetRandomMacDisabledFalseSuccess2() -{ - pStaService->SetRandomMacDisabled(false); - pStaService->SetRandomMacDisabled(false); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, false); -} - void StaServiceTest::StaServiceReconnectByMdmTest1() { WifiDeviceConfig config; @@ -534,7 +498,7 @@ void StaServiceTest::StaServiceReconnectByMdmTest1() EXPECT_CALL(WifiSettings::GetInstance(), GetDeviceConfig(_, _, _)) .Times(AtLeast(0)).WillOnce(DoAll(SetArgReferee<1>(config), Return(0))); - pStaService->SetRandomMacDisabled(false); + EXPECT_CALL(WifiSettings::GetInstance(), SetRandomMacDisabled(_, _)).WillRepeatedly(Return(false)); EXPECT_TRUE(pStaService->ReconnectByMdm() == WIFI_OPT_SUCCESS); } @@ -548,7 +512,7 @@ void StaServiceTest::StaServiceReconnectByMdmTest2() EXPECT_CALL(WifiSettings::GetInstance(), GetDeviceConfig(_, _, _)) .Times(AtLeast(0)).WillOnce(DoAll(SetArgReferee<1>(config), Return(0))); - pStaService->SetRandomMacDisabled(true); + EXPECT_CALL(WifiSettings::GetInstance(), SetRandomMacDisabled(_, _)).WillRepeatedly(Return(true)); EXPECT_TRUE(pStaService->ReconnectByMdm() == WIFI_OPT_SUCCESS); } @@ -1101,24 +1065,6 @@ HWTEST_F(StaServiceTest, StaServiceSetWifiRestrictedListSuccess, TestSize.Level0 StaServiceSetWifiRestrictedListSuccess(); } -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledTrueSuccess1, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledTrueSuccess1(); -} - -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledTrueSuccess2, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledTrueSuccess2(); -} -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledFalseSuccess1, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledFalseSuccess1(); -} - -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledFalseSuccess2, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledFalseSuccess2(); -} HWTEST_F(StaServiceTest, StaServiceReconnectByMdmTest1, TestSize.Level0) { StaServiceReconnectByMdmTest1();