RuleDlg.cpp
上传用户:wlquartz
上传日期:2022-03-04
资源大小:89k
文件大小:3k
开发平台:

Visual C++

  1. // RuleDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "FirewallApp.h"
  5. #include "RuleDlg.h"
  6. #include "sockUtil.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CRuleDlg dialog
  14. CRuleDlg::CRuleDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CRuleDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CRuleDlg)
  18. m_ipsource = _T("0.0.0.0");
  19. m_portsource = 0;
  20. m_ipdestination = _T("0.0.0.0");
  21. m_portDestination = 0;
  22. m_action = _T("Tirar");
  23. m_protocol = _T("TCP");
  24. m_srcMask = _T("255.255.255.255");
  25. m_dstMask = _T("255.255.255.255");
  26. //}}AFX_DATA_INIT
  27. }
  28. void CRuleDlg::DoDataExchange(CDataExchange* pDX)
  29. {
  30. CDialog::DoDataExchange(pDX);
  31. //{{AFX_DATA_MAP(CRuleDlg)
  32. DDX_Text(pDX, IDC_EDIT1, m_ipsource);
  33. DDV_MaxChars(pDX, m_ipsource, 15);
  34. DDX_Text(pDX, IDC_EDIT2, m_portsource);
  35. DDX_Text(pDX, IDC_EDIT3, m_ipdestination);
  36. DDV_MaxChars(pDX, m_ipdestination, 15);
  37. DDX_Text(pDX, IDC_EDIT4, m_portDestination);
  38. DDX_CBString(pDX, IDC_COMBO3, m_action);
  39. DDX_CBString(pDX, IDC_COMBO4, m_protocol);
  40. DDX_Text(pDX, IDC_EDIT6, m_srcMask);
  41. DDV_MaxChars(pDX, m_srcMask, 15);
  42. DDX_Text(pDX, IDC_EDIT5, m_dstMask);
  43. DDV_MaxChars(pDX, m_dstMask, 15);
  44. //}}AFX_DATA_MAP
  45. }
  46. BEGIN_MESSAGE_MAP(CRuleDlg, CDialog)
  47. //{{AFX_MSG_MAP(CRuleDlg)
  48. //}}AFX_MSG_MAP
  49. END_MESSAGE_MAP()
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CRuleDlg message handlers
  52. void CRuleDlg::OnOK() 
  53. {
  54. int result;
  55. UpdateData(TRUE);
  56. result = inet_addr(m_ipsource, &srcIp);
  57. if(result == -1)
  58. {
  59. AfxMessageBox("Source Ip isn't valid.");
  60. return;
  61. }
  62. result = inet_addr(m_srcMask, &srcMask);
  63. if(result == -1)
  64. {
  65. AfxMessageBox("Source Mask isn't valid.");
  66. return;
  67. }
  68. result = inet_addr(m_ipdestination, &dstIp);
  69. if(result == -1)
  70. {
  71. AfxMessageBox("Destination Ip isn't valid.");
  72. return;
  73. }
  74. result = inet_addr(m_dstMask, &dstMask);
  75. if(result == -1)
  76. {
  77. AfxMessageBox("Destination Mask isn't valid.");
  78. return;
  79. }
  80. if(m_protocol == "TCP")
  81. protocol = 6;
  82. else if(m_protocol == "UDP")
  83. protocol = 17;
  84. else if(m_protocol == "ICMP")
  85. protocol = 1;
  86. else
  87. protocol = 0;
  88. if(m_action == "")
  89. {
  90. AfxMessageBox("Select an Action, please");
  91. return;
  92. }
  93. else
  94. {
  95. if(m_action == "Forward")
  96. cAction = 0;
  97. else
  98. cAction = 1;
  99. }
  100. srcPort = m_portsource;
  101. dstPort = m_portDestination;
  102. CDialog::OnOK();
  103. }