Don't check qtaguid file unless using them

The proc file of xt_qtaguid module is not necessarily exist on future
devices. We should only check it if the device need to read the stats
file for network usage information.

Bug: 79938294
Test: NetworkUsageStatsTest TrafficStatsTest
Change-Id: I5ac6feef8b9a26daa68b381a985925e24b0d80af
This commit is contained in:
Chenbo Feng
2018-09-14 15:16:48 -07:00
parent 6d0cd0b7b6
commit 5c0232c572

View File

@@ -285,10 +285,6 @@ static int statsLinesToNetworkStats(JNIEnv* env, jclass clazz, jobject stats,
static int readNetworkStatsDetail(JNIEnv* env, jclass clazz, jobject stats, jstring path, static int readNetworkStatsDetail(JNIEnv* env, jclass clazz, jobject stats, jstring path,
jint limitUid, jobjectArray limitIfacesObj, jint limitTag, jint limitUid, jobjectArray limitIfacesObj, jint limitTag,
jboolean useBpfStats) { jboolean useBpfStats) {
ScopedUtfChars path8(env, path);
if (path8.c_str() == NULL) {
return -1;
}
std::vector<std::string> limitIfaces; std::vector<std::string> limitIfaces;
if (limitIfacesObj != NULL && env->GetArrayLength(limitIfacesObj) > 0) { if (limitIfacesObj != NULL && env->GetArrayLength(limitIfacesObj) > 0) {
@@ -308,6 +304,11 @@ static int readNetworkStatsDetail(JNIEnv* env, jclass clazz, jobject stats, jstr
if (parseBpfNetworkStatsDetail(&lines, limitIfaces, limitTag, limitUid) < 0) if (parseBpfNetworkStatsDetail(&lines, limitIfaces, limitTag, limitUid) < 0)
return -1; return -1;
} else { } else {
ScopedUtfChars path8(env, path);
if (path8.c_str() == NULL) {
ALOGE("the qtaguid legacy path is invalid: %s", path8.c_str());
return -1;
}
if (legacyReadNetworkStatsDetail(&lines, limitIfaces, limitTag, if (legacyReadNetworkStatsDetail(&lines, limitIfaces, limitTag,
limitUid, path8.c_str()) < 0) limitUid, path8.c_str()) < 0)
return -1; return -1;