#include "ClatdController.h"
#include "StrictController.h"
-
-class LockingFrameworkCommand : public FrameworkCommand {
-public:
- LockingFrameworkCommand(FrameworkCommand *wrappedCmd) :
- FrameworkCommand(wrappedCmd->getCommand()),
- mWrappedCmd(wrappedCmd) {}
-
- int runCommand(SocketClient *c, int argc, char **argv) {
- android::RWLock::AutoWLock lock(android::net::gBigNetdLock);
- return mWrappedCmd->runCommand(c, argc, argv);
- }
-
-private:
- FrameworkCommand *mWrappedCmd;
-};
-
class CommandListener : public FrameworkListener {
- static TetherController *sTetherCtrl;
- static NatController *sNatCtrl;
- static PppController *sPppCtrl;
- static SoftapController *sSoftapCtrl;
- static BandwidthController *sBandwidthCtrl;
- static IdletimerController *sIdletimerCtrl;
- static InterfaceController *sInterfaceCtrl;
- static ResolverController *sResolverCtrl;
- static FirewallController *sFirewallCtrl;
- static ClatdController *sClatdCtrl;
- static StrictController *sStrictCtrl;
-
public:
- static NetworkController *sNetCtrl;
-
CommandListener();
virtual ~CommandListener() {}
private:
-
+ void registerLockingCmd(FrameworkCommand *cmd, android::RWLock& lock);
void registerLockingCmd(FrameworkCommand *cmd) {
- registerCmd(new LockingFrameworkCommand(cmd));
+ registerLockingCmd(cmd, android::net::gBigNetdLock);
}
class SoftapCmd : public NetdCommand {
ResolverCmd();
virtual ~ResolverCmd() {}
int runCommand(SocketClient *c, int argc, char ** argv);
+
+ private:
+ bool parseAndExecuteSetNetDns(int netId, int argc, const char** argv);
};
class FirewallCmd: public NetdCommand {