quec_ip_firewall.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef __QUEC_IP_FIREWALL_H_
  2. #define __QUEC_IP_FIREWALL_H_
  3. typedef enum
  4. {
  5. QUEC_FIREWALL_ENABLE = 0,
  6. QUEC_TCP_BLACKLIST_CLEAN_TIME= 1,
  7. QUEC_TCP_RECORD_LIST_CLEAN_TIME,
  8. QUEC_ICMP_BLACKLIST_CLEAN_TIME,
  9. QUEC_ICMP_RECORD_LIST_CLEAN_TIME,
  10. QUEC_TCP_ACCESS_PERCENTAGE,
  11. QUEC_TCP_INPUT_SCALE = 6,
  12. QUEC_ICMP_INPUT_SCALE,
  13. QUEC_ICMP_INPUT_INTERVAL,
  14. QUEC_SAVE_FILE_LOG_TIME,
  15. QUEC_FIREWALL_CONFIG_MAX
  16. }quec_firewall_config_type;
  17. typedef enum{
  18. QUEC_FIREWALL_MIN = 1001,
  19. QUEC_FIREWALL_WRITE = 1002, //保存log到文件
  20. QUEC_FIREWALL_CLOSE = 1003, //关闭定时器
  21. QUEC_FIREWALL_TIME_SET = 1004, //关闭定时器
  22. QUEC_FIREWALL_PORT_SET = 1005, //清空port记录
  23. QUEC_FIREWALL_DNS_DELAY = 1006, //清空DNS允许记录
  24. }quec_firewall_msg_id;
  25. typedef struct
  26. {
  27. int socket_fd; //socketfd
  28. int src_port;
  29. int dest_port;
  30. char remote_ip[16];
  31. char local_ip[16];
  32. }quec_tcp_pcb;
  33. void quec_firewall_set_config(quec_firewall_config_type type, int value);
  34. int quec_firewall_get_config(quec_firewall_config_type type);
  35. int quec_firewall_set_local_port(int s, int port);
  36. void quec_firewall_dns_flag_set(int flag);
  37. int quec_firewall_dns_flag_get(void);
  38. void quec_firewall_tcp_pcb_set_local(int socket_fd, int protocol, int port, char *ip_addr);
  39. void quec_firewall_tcp_pcb_set_remote(int socket_fd, int protocol, int port, char *ip_addr);
  40. void quec_firewall_tcp_pcb_clear(int socket_fd);
  41. quec_tcp_pcb *quec_firewall_tcp_pcb_get(int socket_fd);
  42. int quec_firewall_get_enable(void);
  43. void quec_firewall_delete(int s, int err);
  44. void quec_firewall_shut_delete(int s, int err, int how);
  45. void quec_firewall_remove_pcb(int socket_fd);
  46. #endif /*__QUEC_IP_FIREWALL_H_*/