Avoid inconsistent state when remove fails.

Bug: 5433432
Change-Id: Ia388fda006cbda09b5947fc61cec6353f75a3805
This commit is contained in:
Jeff Sharkey
2011-11-08 13:04:22 -08:00
parent 6dee1a9d04
commit 38ddeaa67e

View File

@@ -1136,12 +1136,14 @@ public class NetworkManagementService extends INetworkManagementService.Stub
final StringBuilder command = new StringBuilder();
command.append("bandwidth removeiquota ").append(iface);
mActiveQuotaIfaces.remove(iface);
mActiveAlertIfaces.remove(iface);
try {
// TODO: support quota shared across interfaces
mConnector.doCommand(command.toString());
mActiveQuotaIfaces.remove(iface);
mActiveAlertIfaces.remove(iface);
} catch (NativeDaemonConnectorException e) {
// TODO: include current iptables state
throw new IllegalStateException("Error communicating to native daemon", e);
}
}