Add full support for UIDs in VPNs.
Major:
+ Implement the functions mentioned in http://go/android-multinetwork-routing
correctly, including handling accept(), connect(), setNetworkForSocket()
and protect() and supporting functions like canUserSelectNetwork().
+ Eliminate the old code path of getting/setting UID ranges through
SecondaryTableController (which is currently unused) and mUidMap.
Minor:
+ Rename some methods/variables for clarity and consistency.
+ Moved some methods in .cpp files to match declaration order in the .h files.
Bug: 15409918
Change-Id: Ic6ce3646c58cf645db0d9a53cbeefdd7ffafff93
diff --git a/server/RouteController.cpp b/server/RouteController.cpp
index d090bef..bc50dc4 100644
--- a/server/RouteController.cpp
+++ b/server/RouteController.cpp
@@ -524,7 +524,7 @@
return -ESRCH;
}
- for (const std::pair<uid_t, uid_t>& range : uidRanges.getRanges()) {
+ for (const UidRanges::Range& range : uidRanges.getRanges()) {
if (int ret = modifyExplicitNetworkRule(netId, table, PERMISSION_NONE, range.first,
range.second, add)) {
return ret;