Skip to content
Snippets Groups Projects
Commit 90428539 authored by Ken Chen's avatar Ken Chen Committed by Gerrit Code Review
Browse files

Merge "Add Data Saver utils in Firewall test helper class" into main

parents 2deeef4f 5b144a10
No related branches found
No related tags found
No related merge requests found
......@@ -27,6 +27,9 @@ Firewall::Firewall() {
result = mUidOwnerMap.init(UID_OWNER_MAP_PATH);
EXPECT_RESULT_OK(result) << "init mUidOwnerMap failed";
result = mDataSaverEnabledMap.init(DATA_SAVER_ENABLED_MAP_PATH);
EXPECT_RESULT_OK(result) << "init mDataSaverEnabledMap failed";
}
Firewall* Firewall::getInstance() {
......@@ -116,3 +119,20 @@ Result<void> Firewall::removeUidInterfaceRules(const std::vector<int32_t>& uids)
}
return {};
}
Result<bool> Firewall::getDataSaverSetting() {
std::lock_guard guard(mMutex);
auto dataSaverSetting = mDataSaverEnabledMap.readValue(DATA_SAVER_ENABLED_KEY);
if (!dataSaverSetting.ok()) {
return Errorf("Cannot read the data saver setting: {}", dataSaverSetting.error().message());
}
return dataSaverSetting;
}
Result<void> Firewall::setDataSaver(bool enabled) {
std::lock_guard guard(mMutex);
auto res = mDataSaverEnabledMap.writeValue(DATA_SAVER_ENABLED_KEY, enabled, BPF_EXIST);
if (!res.ok()) return Errorf("Failed to set data saver: {}", res.error().message());
return {};
}
......@@ -33,9 +33,11 @@ class Firewall {
Result<void> removeRule(uint32_t uid, UidOwnerMatchType match) EXCLUDES(mMutex);
Result<void> addUidInterfaceRules(const std::string& ifName, const std::vector<int32_t>& uids);
Result<void> removeUidInterfaceRules(const std::vector<int32_t>& uids);
Result<bool> getDataSaverSetting();
Result<void> setDataSaver(bool enabled);
private:
BpfMap<uint32_t, uint32_t> mConfigurationMap GUARDED_BY(mMutex);
BpfMap<uint32_t, UidOwnerValue> mUidOwnerMap GUARDED_BY(mMutex);
BpfMap<uint32_t, bool> mDataSaverEnabledMap GUARDED_BY(mMutex);
std::mutex mMutex;
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment