Fix WiFi-Direct and Tethering.
A LocalNetwork object now always exists in the NetworkController, with a fixed
NetId that's guaranteed not to collide with NetIds created by the framework.
When routes are added on an interface tracked by the LocalNetwork, they are
added to a fixed "local_network" table.
When NAT is enabled, we add a special "iif -> oif" tethering rule.
Bug: 15413694
Bug: 15413741
Change-Id: I36effc438d5ac193a77174493bf196cb68a5b97a
diff --git a/server/NatController.h b/server/NatController.h
index e3cc394..9102f46 100644
--- a/server/NatController.h
+++ b/server/NatController.h
@@ -21,16 +21,13 @@
#include <list>
#include <string>
-class NetworkController;
-
class NatController {
-
public:
- explicit NatController(NetworkController* net_ctrl);
+ NatController();
virtual ~NatController();
- int enableNat(const int argc, char **argv);
- int disableNat(const int argc, char **argv);
+ int enableNat(const char* intIface, const char* extIface);
+ int disableNat(const char* intIface, const char* extIface);
int setupIptablesHooks();
static const char* LOCAL_FORWARD;
@@ -42,7 +39,6 @@
private:
int natCount;
- NetworkController *mNetCtrl;
bool checkTetherCountingRuleExist(const char *pair_name);
@@ -50,7 +46,6 @@
int runCmd(int argc, const char **argv);
int setForwardRules(bool set, const char *intIface, const char *extIface);
int setTetherCountingRules(bool add, const char *intIface, const char *extIface);
- int routesOp(bool add, const char *intIface, char **argv, int addrCount);
};
#endif