From abfc7e183b9bb350c89dcf72c8004f132d2fbebb Mon Sep 17 00:00:00 2001 From: l00635678 Date: Thu, 1 Aug 2024 17:32:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5portal=E4=B8=8D=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=EF=BC=8C=E6=97=A0=E6=B3=95=E4=B8=8A=E7=BD=91=EF=BC=8C?= =?UTF-8?q?=E6=8C=89=E7=85=A7=E8=A7=84=E6=A0=BC=E5=BA=94=E8=AF=A5=E8=A6=81?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E8=9C=82=E7=AA=9D=E4=B8=8A=E7=BD=91=EF=BC=88?= =?UTF-8?q?=E8=9C=82=E7=AA=9D=E5=8E=BB=E6=BF=80=E6=B4=BB=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E5=88=87=E8=9C=82=E7=AA=9D=E5=A4=B1=E8=B4=A5=EF=BC=8C=E5=8F=88?= =?UTF-8?q?=E5=88=87=E5=9B=9Ewifi=E9=80=9A=E9=81=93=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/include/apn_manager/apn_holder.h | 1 - services/src/apn_manager/apn_holder.cpp | 8 +---- services/src/cellular_data_handler.cpp | 43 ++++------------------- test/zero_branch_test.cpp | 1 - 4 files changed, 8 insertions(+), 45 deletions(-) diff --git a/services/include/apn_manager/apn_holder.h b/services/include/apn_manager/apn_holder.h index e3bceeab..82a261f2 100644 --- a/services/include/apn_manager/apn_holder.h +++ b/services/include/apn_manager/apn_holder.h @@ -47,7 +47,6 @@ public: void SetApnState(ApnProfileState state); ApnProfileState GetApnState() const; bool IsDataCallEnabled() const; - bool IsDataCallConnectable() const; std::string GetApnType() const; void ReleaseDataConnection(); int32_t GetProfileId(const std::string &apnType) const; diff --git a/services/src/apn_manager/apn_holder.cpp b/services/src/apn_manager/apn_holder.cpp index d46f00d2..d816dca4 100644 --- a/services/src/apn_manager/apn_holder.cpp +++ b/services/src/apn_manager/apn_holder.cpp @@ -100,12 +100,6 @@ bool ApnHolder::IsDataCallEnabled() const return dataCallEnabled_; } -bool ApnHolder::IsDataCallConnectable() const -{ - return dataCallEnabled_ && ((apnState_ == PROFILE_STATE_IDLE) - || (apnState_ == PROFILE_STATE_RETRYING) || (apnState_ == PROFILE_STATE_FAILED)); -} - std::string ApnHolder::GetApnType() const { return apnType_; @@ -123,10 +117,10 @@ void ApnHolder::ReleaseDataConnection() TELEPHONY_LOGE("ClearConnection fail, object is null"); return; } + apnState_ = PROFILE_STATE_DISCONNECTING; AppExecFwk::InnerEvent::Pointer event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, object); cellularDataStateMachine_->SendEvent(event); - apnState_ = PROFILE_STATE_IDLE; cellularDataStateMachine_ = nullptr; } diff --git a/services/src/cellular_data_handler.cpp b/services/src/cellular_data_handler.cpp index 942620dc..7c5c2f02 100644 --- a/services/src/cellular_data_handler.cpp +++ b/services/src/cellular_data_handler.cpp @@ -80,23 +80,12 @@ CellularDataHandler::~CellularDataHandler() bool CellularDataHandler::ReleaseNet(const NetRequest &request) { - if (apnManager_ == nullptr) { - TELEPHONY_LOGE("Slot%{public}d: apnManager is null.", slotId_); - return false; - } - uint64_t capability = ApnManager::FindBestCapability(request.capability); - int32_t id = ApnManager::FindApnIdByCapability(capability); - sptr apnHolder = apnManager_->FindApnHolderById(id); - if (apnHolder == nullptr) { - TELEPHONY_LOGE("Slot%{public}d: apnHolder is null.", slotId_); - return false; - } std::unique_ptr netRequest = std::make_unique(); if (netRequest == nullptr) { TELEPHONY_LOGE("Netrequest is null"); return false; } - netRequest->capability = capability; + netRequest->capability = ApnManager::FindBestCapability(request.capability); netRequest->ident = request.ident; AppExecFwk::InnerEvent::Pointer event = InnerEvent::Get(CellularDataEventCode::MSG_REQUEST_NETWORK, netRequest, TYPE_RELEASE_NET); @@ -109,28 +98,12 @@ bool CellularDataHandler::ReleaseNet(const NetRequest &request) bool CellularDataHandler::RequestNet(const NetRequest &request) { - if (apnManager_ == nullptr) { - TELEPHONY_LOGE("Slot%{public}d: apnManager is null.", slotId_); - return false; - } - uint64_t capability = ApnManager::FindBestCapability(request.capability); - int32_t id = ApnManager::FindApnIdByCapability(capability); - sptr apnHolder = apnManager_->FindApnHolderById(id); - if (apnHolder == nullptr) { - TELEPHONY_LOGE("Slot%{public}d: apnHolder is null.", slotId_); - return false; - } - ApnProfileState apnState = apnHolder->GetApnState(); - if (apnState == ApnProfileState::PROFILE_STATE_CONNECTED || apnState == ApnProfileState::PROFILE_STATE_CONNECTING) { - TELEPHONY_LOGD("Slot%{public}d: apn state is connected(%{public}d).", slotId_, apnState); - return true; - } std::unique_ptr netRequest = std::make_unique(); if (netRequest == nullptr) { TELEPHONY_LOGE("Netrequest is null"); return false; } - netRequest->capability = capability; + netRequest->capability = ApnManager::FindBestCapability(request.capability); netRequest->ident = request.ident; netRequest->registerType = request.registerType; netRequest->bearTypes = request.bearTypes; @@ -313,10 +286,10 @@ void CellularDataHandler::ClearConnection(const sptr &apn, DisConnect TELEPHONY_LOGE("Slot%{public}d: ClearConnection fail, object is null", slotId_); return; } - InnerEvent::Pointer event = InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, object); - stateMachine->SendEvent(event); apn->SetApnState(PROFILE_STATE_DISCONNECTING); apn->SetCellularDataStateMachine(nullptr); + InnerEvent::Pointer event = InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, object); + stateMachine->SendEvent(event); } ApnProfileState CellularDataHandler::GetCellularDataState() const @@ -434,9 +407,7 @@ void CellularDataHandler::EstablishAllApnsIfConnectable() if (apnState == PROFILE_STATE_FAILED || apnState == PROFILE_STATE_RETRYING) { apnHolder->ReleaseDataConnection(); } - if (apnHolder->IsDataCallConnectable() || IsVSimSlotId(slotId_)) { - AttemptEstablishDataConnection(apnHolder); - } + AttemptEstablishDataConnection(apnHolder); } } } @@ -612,7 +583,8 @@ bool CellularDataHandler::CheckApnState(sptr &apnHolder) } if (apnHolder->GetApnState() != PROFILE_STATE_IDLE) { - TELEPHONY_LOGD("Slot%{public}d: APN holder is not idle", slotId_); + TELEPHONY_LOGD("Slot%{public}d: APN holder is not idle, apn state is %{public}d", + slotId_, apnHolder->GetApnState()); return false; } std::vector> matchedApns = apnManager_->FilterMatchedApns(apnHolder->GetApnType(), slotId_); @@ -950,7 +922,6 @@ void CellularDataHandler::MsgRequestNetwork(const InnerEvent::Pointer &event) } else { TELEPHONY_LOGI("release all cellular data"); apnHolder->ReleaseAllCellularData(); - return; } } InnerEvent::Pointer innerEvent = InnerEvent::Get(CellularDataEventCode::MSG_ESTABLISH_DATA_CONNECTION, id); diff --git a/test/zero_branch_test.cpp b/test/zero_branch_test.cpp index e6a4e49b..3927e151 100644 --- a/test/zero_branch_test.cpp +++ b/test/zero_branch_test.cpp @@ -1056,7 +1056,6 @@ HWTEST_F(BranchTest, Telephony_ApnHolder_001, Function | MediumTest | Level3) apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_FAILED); apnHolder->GetApnState(); apnHolder->IsDataCallEnabled(); - apnHolder->IsDataCallConnectable(); apnHolder->GetApnType(); apnHolder->ReleaseDataConnection(); apnHolder->cellularDataStateMachine_ = nullptr; -- Gitee