Merge "Return errors to caller" into tizen_5.5
[platform/core/connectivity/stc-manager.git] / src / helper / helper-iptables.h
old mode 100644 (file)
new mode 100755 (executable)
index 13db25b..f9f069a
 #ifndef __STC_HELPER_IPTABLES_H__
 #define __STC_HELPER_IPTABLES_H__
 
+#include <arpa/inet.h>
 #include "stc-manager.h"
 #include "stc-error.h"
 
-#define STC_IN_CHAIN     "STC_IN"
-#define STC_OUT_CHAIN    "STC_OUT"
+#define STC_IN_CHAIN      "STC_IN"
+#define STC_OUT_CHAIN     "STC_OUT"
 #define STC_FRWD_CHAIN    "STC_FRWD"
+#define STC_TETHER_CHAIN  "STC_TETHER"
+
+#define STC_IN_DROP_CHAIN     "STC_IN_DROP"
+#define STC_IN_FG_CHAIN       "STC_IN_FG"
+#define STC_IN_ACCEPT_CHAIN   "STC_IN_ACCEPT"
+#define STC_IN_BG_DROP_CHAIN  "STC_IN_BG_DROP"
+#define STC_IN_BG_CHAIN       "STC_IN_BG"
+
+#define STC_OUT_DROP_CHAIN    "STC_OUT_DROP"
+#define STC_OUT_FG_CHAIN      "STC_OUT_FG"
+#define STC_OUT_ACCEPT_CHAIN  "STC_OUT_ACCEPT"
+#define STC_OUT_BG_DROP_CHAIN "STC_OUT_BG_DROP"
+#define STC_OUT_BG_CHAIN      "STC_OUT_BG"
 
 typedef enum {
        IPTABLES_DIRECTION_NONE,
@@ -38,17 +52,32 @@ typedef enum {
        IP_TYPE_LAST_ELEM
 } iptables_ip_type_e;
 
+typedef enum {
+       IPTABLES_IP_NONE,
+       IPTABLES_IP_SINGLE,
+       IPTABLES_IP_MASK,
+       IPTABLES_IP_RANGE
+} iptables_iprange_type_e;
+
 typedef struct {
        char *chain;
        char *ifname;
        char *nfacct_name;
        char *target;
+       iptables_iprange_type_e s_iprange_type;
+       iptables_iprange_type_e d_iprange_type;
+       struct in_addr s_ip1;
+       struct in_addr s_ip2;
+       struct in_addr d_ip1;
+       struct in_addr d_ip2;
        iptables_rule_direction_e direction;
        uint32_t classid;
 } iptables_rule_s;
 
 stc_error_e iptables_add(iptables_rule_s *rule, iptables_ip_type_e iptype);
 stc_error_e iptables_remove(iptables_rule_s *rule, iptables_ip_type_e iptype);
+stc_error_e iptables_add_list(GSList *iptables_list, iptables_ip_type_e iptype);
+stc_error_e iptables_remove_list(GSList *iptables_list, iptables_ip_type_e iptype);
 stc_error_e iptables_flush_chains(void);
 stc_error_e iptables_init(void);
 stc_error_e iptables_deinit(void);