Page3.cpp
上传用户:heseme
上传日期:2009-12-23
资源大小:228k
文件大小:10k
开发平台:

Visual C++

  1. // Page3.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "FireWall1.h"
  5. #include "Page3.h"
  6. #include "global.h"
  7. #include "page4.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. FILE *pfoutDefault=NULL;
  14. FILE *pwriteDefault=NULL;
  15. DefaultSetData TheDefaultSetData;
  16. extern CDataConvert gDataConvert;
  17. extern ServiceManageData TheServiceManageData,MyServiceManageData;
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CPage3 property page
  20. IMPLEMENT_DYNCREATE(CPage3, CPropertyPage)
  21. CPage3::CPage3() : CPropertyPage(CPage3::IDD)
  22. {
  23. //{{AFX_DATA_INIT(CPage3)
  24. m_check_activex = FALSE;
  25. m_check_comein = FALSE;
  26. m_check_dns = FALSE;
  27. m_check_finger = FALSE;
  28. m_check_goout = FALSE;
  29. m_check_intoout1024l = FALSE;
  30. m_check_intoout1024s = FALSE;
  31. m_check_intoout80 = FALSE;
  32. m_check_intooutftp = FALSE;
  33. m_check_intoouticmp = FALSE;
  34. m_check_intooutigmp = FALSE;
  35. m_check_intooutnbt = FALSE;
  36. m_check_intooutsnmp = FALSE;
  37. m_check_intoouttelnet = FALSE;
  38. m_check_java = FALSE;
  39. m_check_outtoin1024l = FALSE;
  40. m_check_outtoin1024s = FALSE;
  41. m_check_outtoin80 = FALSE;
  42. m_check_outtoinftp = FALSE;
  43. m_check_outtoinicmp = FALSE;
  44. m_check_outtoinigmp = FALSE;
  45. m_check_outtoinnbt = FALSE;
  46. m_check_outtoinsnmp = FALSE;
  47. m_check_outtointelnet = FALSE;
  48. m_check_script = FALSE;
  49. m_radio = -1;
  50. //}}AFX_DATA_INIT
  51. }
  52. CPage3::~CPage3()
  53. {
  54. }
  55. void CPage3::DoDataExchange(CDataExchange* pDX)
  56. {
  57. CPropertyPage::DoDataExchange(pDX);
  58. //{{AFX_DATA_MAP(CPage3)
  59. DDX_Check(pDX, IDC_CHECK_ACTIVEX, m_check_activex);
  60. DDX_Check(pDX, IDC_CHECK_COMEIN, m_check_comein);
  61. DDX_Check(pDX, IDC_CHECK_DNS, m_check_dns);
  62. DDX_Check(pDX, IDC_CHECK_FINGER, m_check_finger);
  63. DDX_Check(pDX, IDC_CHECK_GOOUT, m_check_goout);
  64. DDX_Check(pDX, IDC_CHECK_INtoOUT1024L, m_check_intoout1024l);
  65. DDX_Check(pDX, IDC_CHECK_INtoOUT1024S, m_check_intoout1024s);
  66. DDX_Check(pDX, IDC_CHECK_INtoOUT80, m_check_intoout80);
  67. DDX_Check(pDX, IDC_CHECK_INtoOUTFTP, m_check_intooutftp);
  68. DDX_Check(pDX, IDC_CHECK_INtoOUTICMP, m_check_intoouticmp);
  69. DDX_Check(pDX, IDC_CHECK_INtoOUTIGMP, m_check_intooutigmp);
  70. DDX_Check(pDX, IDC_CHECK_INtoOUTNBT, m_check_intooutnbt);
  71. DDX_Check(pDX, IDC_CHECK_INtoOUTSNMP, m_check_intooutsnmp);
  72. DDX_Check(pDX, IDC_CHECK_INtoOUTTELNET, m_check_intoouttelnet);
  73. DDX_Check(pDX, IDC_CHECK_JAVA, m_check_java);
  74. DDX_Check(pDX, IDC_CHECK_OUTtoIN1024L, m_check_outtoin1024l);
  75. DDX_Check(pDX, IDC_CHECK_OUTtoIN1024S, m_check_outtoin1024s);
  76. DDX_Check(pDX, IDC_CHECK_OUTtoIN80, m_check_outtoin80);
  77. DDX_Check(pDX, IDC_CHECK_OUTtoINFTP, m_check_outtoinftp);
  78. DDX_Check(pDX, IDC_CHECK_OUTtoINICMP, m_check_outtoinicmp);
  79. DDX_Check(pDX, IDC_CHECK_OUTtoINIGMP, m_check_outtoinigmp);
  80. DDX_Check(pDX, IDC_CHECK_OUTtoINNBT, m_check_outtoinnbt);
  81. DDX_Check(pDX, IDC_CHECK_OUTtoINSNMP, m_check_outtoinsnmp);
  82. DDX_Check(pDX, IDC_CHECK_OUTtoINTELNET, m_check_outtointelnet);
  83. DDX_Check(pDX, IDC_CHECK_SCRIPT, m_check_script);
  84. DDX_Radio(pDX, IDC_RADIO_HIGH, m_radio);
  85. //}}AFX_DATA_MAP
  86. }
  87. BEGIN_MESSAGE_MAP(CPage3, CPropertyPage)
  88. //{{AFX_MSG_MAP(CPage3)
  89. ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
  90. ON_BN_CLICKED(IDC_RADIO_HIGH, OnRadioHigh)
  91. ON_BN_CLICKED(IDC_RADIO_LOW, OnRadioLow)
  92. ON_BN_CLICKED(IDC_RADIO_MIDDLE, OnRadioMiddle)
  93. //}}AFX_MSG_MAP
  94. END_MESSAGE_MAP()
  95. /////////////////////////////////////////////////////////////////////////////
  96. // CPage3 message handlers
  97. void CPage3::OnButtonOk() 
  98. {
  99. if(TheDefaultSetData.Priority&0x3)//表示高中
  100. {
  101. TheServiceManageData.TCPFilterBit|=0x7;
  102. MyServiceManageData.TCPFilterBit|=0x7;
  103. }
  104. else
  105. {
  106. TheServiceManageData.TCPFilterBit&=0xFFFFFFF8;
  107. MyServiceManageData.TCPFilterBit&=0xFFFFFFF8;
  108. }
  109.     gDataConvert.globalFlags=m_globFlags;
  110. gDataConvert.m_alllinechar.sGlobalFlags=m_globFlags;
  111. pwriteDefault=fopen("default.txt","w");
  112. fprintf(pwriteDefault,_T("[Priority]n"));
  113. fprintf(pwriteDefault,"%dn",TheDefaultSetData.Priority);
  114. fprintf(pwriteDefault,"n");
  115. fprintf(pwriteDefault,_T("[jl]n"));
  116. if(pwriteDefault!=NULL)
  117. fclose(pwriteDefault);
  118. }
  119. void CPage3::OnRadioHigh() 
  120. {
  121. // TODO: Add your control notification handler code here
  122. m_radio=0;
  123. TheDefaultSetData.Priority=0x01;
  124. m_check_intoout80 = TRUE;
  125. m_check_activex = FALSE;
  126. m_check_comein = TRUE;
  127. m_check_dns = FALSE;
  128. m_check_finger = FALSE;
  129. m_check_goout = TRUE;
  130. m_check_intoout1024l = TRUE;
  131. m_check_intoout1024s = FALSE;
  132. m_check_intooutftp = FALSE;
  133. m_check_intoouticmp = 1;
  134. m_check_intooutigmp = 1;
  135. m_check_intooutnbt = FALSE;
  136. m_check_intooutsnmp = FALSE;
  137. m_check_intoouttelnet = FALSE;
  138. m_check_java = FALSE;
  139. m_check_outtoin1024l = FALSE;
  140. m_check_outtoin1024s = FALSE;
  141. m_check_outtoin80 =TRUE;
  142. m_check_outtoinftp = FALSE;
  143. m_check_outtoinicmp = 1;
  144. m_check_outtoinigmp = 1;
  145. m_check_outtoinnbt = FALSE;
  146. m_check_outtoinsnmp = FALSE;
  147. m_check_outtointelnet = FALSE;
  148. m_check_script = FALSE;
  149. TheDefaultSetData.CheckINorOUTNetCard=0x3;
  150. TheDefaultSetData.PortocalComments=0x0;
  151. TheDefaultSetData.Pro=0xf;
  152. TheDefaultSetData.TCPProtocal=0x1003;
  153. TheDefaultSetData.UDPProtocal=0;
  154. memset(&m_globFlags,0,sizeof(struct GlobalFlags));
  155.     m_globFlags.bFragmentIcmp=TRUE;
  156.     m_globFlags.bSusPectIcmp=TRUE;
  157.     m_globFlags.bCheckDmAccack=TRUE;
  158.     m_globFlags.bCheckInNetAttack=TRUE;//IGMP
  159.     m_globFlags.bCheckOutNetAccack=TRUE;
  160.     m_globFlags.bSusPectOffset=TRUE;
  161.     m_globFlags.bMulticast=TRUE;
  162. m_globFlags.bNonIpPacket=TRUE;
  163. m_globFlags.bOtherIpPacket=TRUE;
  164. m_globFlags.bforbidIcmp=TRUE;
  165. UpdateData(FALSE);
  166. }
  167. void CPage3::OnRadioLow() 
  168. {
  169. m_radio=2;
  170. TheDefaultSetData.Priority=0x04;
  171. m_check_intoout80 = TRUE;
  172. m_check_activex = TRUE;
  173. m_check_comein = TRUE;
  174. m_check_dns = TRUE;
  175. m_check_finger = FALSE;
  176. m_check_goout = FALSE;
  177. m_check_intoout1024l = TRUE;
  178. m_check_intoout1024s = TRUE;
  179. m_check_intooutftp = TRUE;
  180. m_check_intoouticmp = 0;
  181. m_check_intooutigmp = 0;
  182. m_check_intooutnbt = TRUE;
  183. m_check_intooutsnmp = TRUE;
  184. m_check_intoouttelnet = TRUE;
  185. m_check_java = TRUE;
  186. m_check_outtoin1024l = TRUE;
  187. m_check_outtoin1024s = TRUE;
  188. m_check_outtoin80 = TRUE;
  189. m_check_outtoinftp = TRUE;
  190. m_check_outtoinicmp = TRUE;
  191. m_check_outtoinigmp = TRUE;
  192. m_check_outtoinnbt = TRUE;
  193. m_check_outtoinsnmp = TRUE;
  194. m_check_outtointelnet = TRUE;
  195. m_check_script = TRUE;
  196. TheDefaultSetData.CheckINorOUTNetCard=0x2;
  197. TheDefaultSetData.PortocalComments=0x7;
  198. TheDefaultSetData.Pro=0xc;
  199. TheDefaultSetData.TCPProtocal=0xFFFFFBFF;
  200. TheDefaultSetData.UDPProtocal=0;
  201. memset(&m_globFlags,0,sizeof(struct GlobalFlags));
  202.     m_globFlags.bFragmentIcmp=TRUE;
  203.     m_globFlags.bSusPectIcmp=TRUE;
  204.     m_globFlags.bCheckDmAccack=TRUE;
  205.     m_globFlags.bCheckOutNetAccack=TRUE;
  206.     m_globFlags.bSusPectOffset=TRUE;
  207. UpdateData(FALSE);
  208. }
  209. void CPage3::OnRadioMiddle() 
  210. {
  211. m_radio=1;
  212. TheDefaultSetData.Priority=0x02;
  213. m_check_intoout80 = TRUE;
  214. m_check_activex = FALSE;
  215. m_check_comein = TRUE;
  216. m_check_dns = FALSE;
  217. m_check_finger = FALSE;
  218. m_check_goout = TRUE;
  219. m_check_intoout1024l = TRUE;
  220. m_check_intoout1024s = TRUE;
  221. m_check_intooutftp = TRUE;
  222. m_check_intoouticmp = FALSE;
  223. m_check_intooutigmp = FALSE;
  224. m_check_intooutnbt = TRUE;
  225. m_check_intooutsnmp = TRUE;
  226. m_check_intoouttelnet = TRUE;
  227. m_check_java = FALSE;
  228. m_check_outtoin1024l = FALSE;
  229. m_check_outtoin1024s = TRUE;
  230. m_check_outtoin80 = TRUE;
  231. m_check_outtoinftp = TRUE;
  232. m_check_outtoinicmp = 1;
  233. m_check_outtoinigmp = 1;
  234. m_check_outtoinnbt = TRUE;
  235. m_check_outtoinsnmp = TRUE;
  236. m_check_outtointelnet = TRUE;
  237. m_check_script = FALSE;
  238. TheDefaultSetData.CheckINorOUTNetCard=0x3;
  239. TheDefaultSetData.PortocalComments=0x0;
  240. TheDefaultSetData.Pro=0xc;
  241. TheDefaultSetData.TCPProtocal=0xFFFFDBFF;
  242. TheDefaultSetData.UDPProtocal=0;
  243. memset(&m_globFlags,0,sizeof(struct GlobalFlags));
  244.     m_globFlags.bFragmentIcmp=TRUE;
  245.     m_globFlags.bSusPectIcmp=TRUE;
  246.     m_globFlags.bCheckDmAccack=TRUE;
  247.     m_globFlags.bCheckInNetAttack=TRUE;//IGMP
  248.     m_globFlags.bCheckOutNetAccack=TRUE;
  249.     m_globFlags.bSusPectOffset=TRUE;
  250.     m_globFlags.bMulticast=TRUE;
  251. UpdateData(FALSE);
  252. }
  253. BOOL CPage3::OnInitDialog() 
  254. {
  255. CPropertyPage::OnInitDialog();
  256. BOOL click=FALSE;
  257. // TODO: Add extra initialization here
  258. // GetDataFromFile();
  259. if(TheDefaultSetData.Priority==0x1)
  260. {
  261. m_radio=0;
  262. OnRadioHigh();
  263. }
  264. if(TheDefaultSetData.Priority==0x2)
  265. {
  266. m_radio=1;
  267. OnRadioMiddle();
  268. }
  269. if(TheDefaultSetData.Priority==0x4)
  270. {
  271. m_radio=2;
  272. OnRadioLow();
  273. }
  274. UpdateData(FALSE);
  275. return TRUE;  // return TRUE unless you set the focus to a control
  276.               // EXCEPTION: OCX Property Pages should return FALSE
  277. }
  278. DWORD CPage3::GetDataFromFile()
  279. {
  280. char command[40];
  281. char *pbuf;
  282. pfoutDefault=fopen("default.txt","r");
  283. if(pfoutDefault==NULL)return 0;
  284. while(feof(pfoutDefault)==0)
  285. {
  286. ReadCommand(pfoutDefault,command);
  287. switch(GetCommand(command))
  288. {
  289. case PRIORITY:
  290. ReadCommand(pfoutDefault,command);
  291. sscanf(command,"%d",&TheDefaultSetData.Priority);
  292. if(TheDefaultSetData.Priority==0x01)
  293. m_radio=0;
  294. if(TheDefaultSetData.Priority==0x02)
  295. m_radio=1;
  296. if(TheDefaultSetData.Priority==0x04)
  297. m_radio=2;
  298. break;
  299. case CHECKINOROUTNETCARD:
  300. break;
  301. case PRO:
  302. break;
  303. case TCPPROTOCAL:
  304. break;
  305. case PORTOCALCOMMENTS:
  306. break;
  307. case UDPPROTOCAL:
  308. break;
  309. }
  310. }
  311. return 1;
  312. }
  313. void CPage3::ReadCommand(FILE *pf, char *pbuf)
  314. {
  315. while(feof(pf)==0) {
  316. *pbuf=fgetc(pf);
  317. if(*pbuf=='n') break;
  318. pbuf++;
  319. }
  320. *pbuf--=0;
  321. if(*pbuf=='r')*pbuf=0;
  322. }
  323. DWORD CPage3::GetCommand(char *pbuf)
  324. {
  325. char buf[50];
  326. if(*pbuf==0) return INITIAL_END_SEGMENT;
  327. sscanf(pbuf,"%s",buf);
  328. if(strstr(buf,"[Priority]")!=NULL) return PRIORITY;
  329. else if(strstr(buf,"[CheckINorOUTNetCard]")!=NULL) return CHECKINOROUTNETCARD;
  330. else if(strstr(buf,"[Pro]")!=NULL)return PRO;
  331. else if(strstr(buf,"[TCPProtocal]")!=NULL) return TCPPROTOCAL;
  332. else if(strstr(buf,"[PortocalComments]")!=NULL) return PORTOCALCOMMENTS;
  333. else if(strstr(buf,"[UDPProtocal]")!=NULL) return UDPPROTOCAL;
  334. else if(strstr(buf,"[jl]")!=NULL) return INITIAL_END_SEGMENT;
  335. else return COMMAND_UNKNOWN;
  336. }