PRuleFile.h
上传用户:zhuzhu0204
上传日期:2020-07-13
资源大小:13165k
文件大小:1k
开发平台:

Visual C++

  1. //////////////////////////////////////
  2. // PRuleFile.h
  3. // 规则文件
  4. #include "../common/TypeStruct.h"
  5. #include "../common/PMacRes.h"
  6. //  从将规则从文件读出,保存到CPRuleFile对象中。再做相反的动作
  7. // Phoenix Personal firewall 
  8. #ifndef __PRULEFILE_H__
  9. #define __PRULEFILE_H__
  10. class CPRuleFile
  11. {
  12. public:
  13. BOOL AddIPRules(IPRule *pItem, int nCount);
  14. BOOL DelKerRuleByURL(TCHAR *szURL);
  15. CPRuleFile();
  16. ~CPRuleFile();
  17. // 从文件加载过滤规则
  18. BOOL LoadRules();
  19. // 将过滤规则保存到文件
  20. BOOL SaveRules();
  21. // 添加nCount个应用层(核心层)过滤规则
  22. BOOL AddLspRules(RULE_ITEM *pItem, int nCount);
  23. BOOL AddKerRules(PassthruFilter *pItem, int nCount);
  24. // 修改过滤规则,主要是修改应用程序的状态:允许 or 禁止
  25. BOOL ModifyLspRule(TCHAR *szAppPath);
  26. // 删除一个应用层(核心层)过滤规则
  27. BOOL DelLspRule(int nIndex);
  28. BOOL DelKerRule(int nIndex);
  29. // 文件数据
  30. RULE_FILE_HEADER m_header; // 文件头
  31. RULE_ITEM *m_pLspRules; // 应用层规则指针
  32. PassthruFilter *m_pKerRules; // 核心层规则指针
  33. IPRule *m_pIPRules; // IP规则指针
  34. private:
  35. // 初始化文件数据
  36. void InitFileData();
  37. // 打开磁盘文件,如果没有会自动创建,并进行初始化
  38. BOOL OpenFile();
  39. // 将规则保存到指定文件
  40. BOOL WriteRules(TCHAR *pszPathName);
  41. HANDLE m_hFile;
  42. TCHAR m_szPathName[MAX_PATH];
  43. int m_nLspMaxCount;
  44. int m_nKerMaxCount;
  45. int m_nIPMaxCount;
  46. BOOL m_bLoad;
  47. };
  48. #endif // __PRULEFILE_H__