X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=server%2FCommandListener.h;h=2fbc1f26d05a1ff688c5a36914c3753eded687ec;hb=6c84ef62d953eae93c36ffa831e9b451560afba0;hp=ada79ebfc501ee407d727ffa6230d2b6df2cd57d;hpb=f4cfad361175a7f9ccf4d41e76a9b289c3c3da22;p=android-x86%2Fsystem-netd.git diff --git a/server/CommandListener.h b/server/CommandListener.h index ada79eb..2fbc1f2 100644 --- a/server/CommandListener.h +++ b/server/CommandListener.h @@ -18,8 +18,10 @@ #define _COMMANDLISTENER_H__ #include +#include "utils/RWLock.h" #include "NetdCommand.h" +#include "NetdConstants.h" #include "NetworkController.h" #include "TetherController.h" #include "NatController.h" @@ -29,35 +31,20 @@ #include "IdletimerController.h" #include "InterfaceController.h" #include "ResolverController.h" -#include "SecondaryTableController.h" #include "FirewallController.h" #include "ClatdController.h" - -class PermissionsController; -class RouteController; +#include "StrictController.h" 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 SecondaryTableController *sSecondaryTableCtrl; - static FirewallController *sFirewallCtrl; - static ClatdController *sClatdCtrl; - static RouteController* sRouteController; - public: - static NetworkController *sNetCtrl; - static PermissionsController* sPermissionsController; - CommandListener(); virtual ~CommandListener() {} private: + void registerLockingCmd(FrameworkCommand *cmd, android::RWLock& lock); + void registerLockingCmd(FrameworkCommand *cmd) { + registerLockingCmd(cmd, android::net::gBigNetdLock); + } class SoftapCmd : public NetdCommand { public: @@ -131,6 +118,9 @@ private: 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 { @@ -141,6 +131,8 @@ private: protected: int sendGenericOkFail(SocketClient *cli, int cond); static FirewallRule parseRule(const char* arg); + static FirewallType parseFirewallType(const char* arg); + static ChildChain parseChildChain(const char* arg); }; class ClatdCmd : public NetdCommand { @@ -150,6 +142,16 @@ private: int runCommand(SocketClient *c, int argc, char ** argv); }; + class StrictCmd : public NetdCommand { + public: + StrictCmd(); + virtual ~StrictCmd() {} + int runCommand(SocketClient *c, int argc, char ** argv); + protected: + int sendGenericOkFail(SocketClient *cli, int cond); + static StrictPenalty parsePenalty(const char* arg); + }; + class NetworkCommand : public NetdCommand { public: NetworkCommand(); @@ -157,8 +159,7 @@ private: int runCommand(SocketClient* client, int argc, char** argv); private: int syntaxError(SocketClient* cli, const char* message); - int paramError(SocketClient* cli, const char* message); - int operationError(SocketClient* cli, const char* message); + int operationError(SocketClient* cli, const char* message, int ret); int success(SocketClient* cli); }; };