diff --git a/services/networksharemanager/src/networkshare_sub_statemachine.cpp b/services/networksharemanager/src/networkshare_sub_statemachine.cpp index e2dcd97d30ba1606f476bd88af4bc2be6ea96a68..9138acd2e7e2c1448aa3a6da98578e07b5497ed1 100644 --- a/services/networksharemanager/src/networkshare_sub_statemachine.cpp +++ b/services/networksharemanager/src/networkshare_sub_statemachine.cpp @@ -382,9 +382,9 @@ void NetworkShareSubStateMachine::SharedStateExit() { NETMGR_EXT_LOG_I("Exit Sub StateMachine[%{public}s] Shared State.", ifaceName_.c_str()); #ifdef SHARE_TRAFFIC_LIMIT_ENABLE + nmd::NetworkSharingTraffic traffic; + NetworkShareTrafficLimit::GetInstance().SaveSharingTrafficToCachedData(traffic); if (upstreamIfaceName_.find(CELLULAR_IFACE_NAME) != std::string::npos) { - nmd::NetworkSharingTraffic traffic; - NetworkShareTrafficLimit::GetInstance().SaveSharingTrafficToCachedData(traffic); NetworkShareTrafficLimit::GetInstance().SaveSharingTrafficToSettingsDB(traffic); } #endif @@ -411,13 +411,13 @@ int NetworkShareSubStateMachine::HandleSharedConnectionChange(const std::any &me std::any_cast>(messageObj); if (upstreamNetInfo == nullptr) { NETMGR_EXT_LOG_I("Sub StateMachine[%{public}s] upstreamNetInfo is null, need clean.", ifaceName_.c_str()); - #ifdef SHARE_TRAFFIC_LIMIT_ENABLE +#ifdef SHARE_TRAFFIC_LIMIT_ENABLE + nmd::NetworkSharingTraffic traffic; + NetworkShareTrafficLimit::GetInstance().SaveSharingTrafficToCachedData(traffic); if (upstreamIfaceName_.find(CELLULAR_IFACE_NAME) != std::string::npos) { - nmd::NetworkSharingTraffic traffic; - NetworkShareTrafficLimit::GetInstance().SaveSharingTrafficToCachedData(traffic); NetworkShareTrafficLimit::GetInstance().AddSharingTrafficBeforeConnChanged(traffic); } - #endif +#endif CleanupUpstreamInterface(); upstreamIfaceName_ = EMPTY_UPSTREAM_IFACENAME; return NETMANAGER_EXT_SUCCESS; diff --git a/services/networksharemanager/src/networkshare_trafficlimit.cpp b/services/networksharemanager/src/networkshare_trafficlimit.cpp index ed8164b727971e9d76522005283decedc05f5862..1225e3a9c85e3718d30223e928821fc5996bc966 100644 --- a/services/networksharemanager/src/networkshare_trafficlimit.cpp +++ b/services/networksharemanager/src/networkshare_trafficlimit.cpp @@ -35,6 +35,7 @@ static constexpr const char *SHARE_SETTING_URI = const std::string SHARE_LIMIT = "wifiap_one_usage_limit"; const std::string WIFI_AP_STATS = "wifiap_one_usage_stats"; const std::string SHARING_LIMIT_TASK_NAME = "networkshare_traffic_limit"; +constexpr const char *CELLULAR_IFACE_NAME = "rmnet"; constexpr int64_t SECOND_IN_MILLIS = 1000; constexpr int32_t NUMBER_THREE = 3; constexpr int32_t UTIL_MIN_SUB_ID = 0; @@ -273,7 +274,11 @@ void NetworkShareTrafficLimit::UpdataSharingTrafficStats() NETMGR_EXT_LOG_E("GetTrafficBytes err, ret[%{public}d].", ret); return; } - + if (ifaceName.find(CELLULAR_IFACE_NAME) == std::string::npos) { + NETMGR_EXT_LOG_E("hotspot is not cellular sharing"); + return; + } + int64_t tetherStats = static_cast(traffic.receive + traffic.send); NETMGR_EXT_LOG_I("Stats=%{public}" PRId64, tetherStats); int64_t statsMills = GetCurrentMilliseconds();