OSDN Git Service

Drop PROHIBIT_NON_VPN priority 11500 -> 12500
[android-x86/system-netd.git] / server / CommandListener.h
index ada79eb..2fbc1f2 100644 (file)
 #define _COMMANDLISTENER_H__
 
 #include <sysutils/FrameworkListener.h>
+#include "utils/RWLock.h"
 
 #include "NetdCommand.h"
+#include "NetdConstants.h"
 #include "NetworkController.h"
 #include "TetherController.h"
 #include "NatController.h"
 #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);
     };
 };