Change RouteController from free functions/members to class functions.
In a future change, this will make it more explicit which bits of
state (e.g., locks) are part of the class and which are not.
Test: netd_{unit,integration}_test passes
Change-Id: Iff5a202cdcb26a7b6039dd95655cc2c26592fc36
diff --git a/server/RouteController.h b/server/RouteController.h
index d13ea58..b01e283 100644
--- a/server/RouteController.h
+++ b/server/RouteController.h
@@ -20,6 +20,7 @@
#include "NetdConstants.h"
#include "Permission.h"
+#include <map>
#include <sys/types.h>
#include <linux/netlink.h>
@@ -97,6 +98,29 @@
// For testing.
static int (*iptablesRestoreCommandFunction)(IptablesTarget, const std::string&,
const std::string&, std::string *);
+
+private:
+ friend class RouteControllerTest;
+
+ static std::map<std::string, uint32_t> sInterfaceToTable;
+
+ static int configureDummyNetwork();
+ static int flushRoutes(const char* interface);
+ static int flushRoutes(uint32_t table);
+ static uint32_t getRouteTableForInterface(const char *interface);
+ static int modifyDefaultNetwork(uint16_t action, const char* interface, Permission permission);
+ static int modifyPhysicalNetwork(unsigned netId, const char* interface, Permission permission,
+ bool add);
+ static int modifyRoute(uint16_t action, const char* interface, const char* destination,
+ const char* nexthop, TableType tableType);
+ static int modifyTetheredNetwork(uint16_t action, const char* inputInterface,
+ const char* outputInterface);
+ static int modifyVpnFallthroughRule(uint16_t action, unsigned vpnNetId,
+ const char* physicalInterface, Permission permission);
+ static int modifyVirtualNetwork(unsigned netId, const char* interface,
+ const UidRanges& uidRanges, bool secure, bool add,
+ bool modifyNonUidBasedRules);
+ static void updateTableNamesFile();
};
// Public because they are called by by RouteControllerTest.cpp.