OSDN Git Service

Allow TCP RSTs to make it through firewall rules.
[android-x86/system-netd.git] / server / BandwidthController.h
index c653e2f..5da4fe1 100644 (file)
 #include <utility>  // for pair
 
 #include <sysutils/SocketClient.h>
+#include <utils/RWLock.h>
+
+#include "NetdConstants.h"
 
 class BandwidthController {
 public:
+    android::RWLock lock;
+
     class TetherStats {
     public:
         TetherStats(void)
@@ -55,6 +60,7 @@ public:
 
     int enableBandwidthControl(bool force);
     int disableBandwidthControl(void);
+    int enableDataSaver(bool enable);
 
     int setInterfaceSharedQuota(const char *iface, int64_t bytes);
     int getInterfaceSharedQuota(int64_t *bytes);
@@ -196,18 +202,11 @@ protected:
 
     std::list<QuotaInfo> quotaIfaces;
 
-private:
-    static const char *IPT_FLUSH_COMMANDS[];
-    static const char *IPT_CLEANUP_COMMANDS[];
-    static const char *IPT_SETUP_COMMANDS[];
-    static const char *IPT_BASIC_ACCOUNTING_COMMANDS[];
-
-    /* Alphabetical */
-    static const char ALERT_GLOBAL_NAME[];
-    static const int  MAX_CMD_ARGS;
-    static const int  MAX_CMD_LEN;
-    static const int  MAX_IFACENAME_LEN;
-    static const int  MAX_IPT_OUTPUT_LINE_LEN;
+    // For testing.
+    friend class BandwidthControllerTest;
+    static int (*execFunction)(int, char **, int *, bool, bool);
+    static FILE *(*popenFunction)(const char *, const char *);
+    static int (*iptablesRestoreFunction)(IptablesTarget, const std::string&);
 };
 
 #endif