/* Let's pretend we started from scratch ... */
sharedQuotaIfaces.clear();
quotaIfaces.clear();
- naughtyAppUids.clear();
- niceAppUids.clear();
globalAlertBytes = 0;
globalAlertTetherCount = 0;
sharedQuotaBytes = sharedAlertBytes = 0;
runIpxtablesCmd(cmd, IptJumpNoAdd);
/* Should be empty, but clear in case something was wrong. */
- niceAppUids.clear();
snprintf(cmd, sizeof(cmd), "-F bw_happy_box");
res |= runIpxtablesCmd(cmd, IptJumpNoAdd);
/* Best effort */
snprintf(cmd, sizeof(cmd), "-D bw_penalty_box -j bw_happy_box");
runIpxtablesCmd(cmd, IptJumpNoAdd);
- niceAppUids.clear();
snprintf(cmd, sizeof(cmd), "-F bw_happy_box");
runIpxtablesCmd(cmd, IptJumpNoAdd);
snprintf(cmd, sizeof(cmd), "-X bw_happy_box");
}
int BandwidthController::manipulateNaughtyApps(int numUids, char *appStrUids[], SpecialAppOp appOp) {
- return manipulateSpecialApps(numUids, appStrUids, "bw_penalty_box", naughtyAppUids, IptJumpReject, appOp);
+ return manipulateSpecialApps(numUids, appStrUids, "bw_penalty_box", IptJumpReject, appOp);
}
int BandwidthController::manipulateNiceApps(int numUids, char *appStrUids[], SpecialAppOp appOp) {
- return manipulateSpecialApps(numUids, appStrUids, "bw_happy_box", niceAppUids, IptJumpReturn, appOp);
+ return manipulateSpecialApps(numUids, appStrUids, "bw_happy_box", IptJumpReturn, appOp);
}
int BandwidthController::manipulateSpecialApps(int numUids, char *appStrUids[],
const char *chain,
- std::list<int /*appUid*/> &specialAppUids,
IptJumpOp jumpHandling, SpecialAppOp appOp) {
int uidNum;
IptOp op;
int appUids[numUids];
std::string iptCmd;
- std::list<int /*uid*/>::iterator it;
switch (appOp) {
case SpecialAppOpAdd:
for (uidNum = 0; uidNum < numUids; uidNum++) {
int uid = appUids[uidNum];
- for (it = specialAppUids.begin(); it != specialAppUids.end(); it++) {
- if (*it == uid)
- break;
- }
- bool found = (it != specialAppUids.end());
-
- if (appOp == SpecialAppOpRemove) {
- if (!found) {
- ALOGE("No such appUid %d to remove", uid);
- return -1;
- }
- specialAppUids.erase(it);
- } else {
- if (found) {
- ALOGE("appUid %d exists already", uid);
- return -1;
- }
- specialAppUids.push_front(uid);
- }
iptCmd = makeIptablesSpecialAppCmd(op, uid, chain);
if (runIpxtablesCmd(iptCmd.c_str(), jumpHandling)) {
int manipulateSpecialApps(int numUids, char *appStrUids[],
const char *chain,
- std::list<int /*appUid*/> &specialAppUids,
IptJumpOp jumpHandling, SpecialAppOp appOp);
int manipulateNaughtyApps(int numUids, char *appStrUids[], SpecialAppOp appOp);
int manipulateNiceApps(int numUids, char *appStrUids[], SpecialAppOp appOp);
int globalAlertTetherCount;
std::list<QuotaInfo> quotaIfaces;
- std::list<int /*appUid*/> naughtyAppUids;
- std::list<int /*appUid*/> niceAppUids;
private:
static const char *IPT_FLUSH_COMMANDS[];