www.pudn.com > AcquireEthernetCode.rar > FileterDlg.cpp


// FileterDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "GetPacket.h" 
#include "FileterDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CFileterDlg dialog 
 
 
CFileterDlg::CFileterDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CFileterDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CFileterDlg) 
	m_edit_sport = 0; 
	m_edit_dport = 0; 
	//}}AFX_DATA_INIT 
	m_pSIPAddrCtl = NULL; 
	m_pDIPAddrCtl = NULL; 
	memset(m_sAddr, 0, 4); 
	memset(m_dAddr, 0, 4); 
 
} 
 
 
void CFileterDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
 
	if (NULL == m_pSIPAddrCtl) 
		m_pSIPAddrCtl = (CIPAddrCtl*) GetDlgItem(IDC_IPSADDR); 
	ASSERT(NULL != m_pSIPAddrCtl); 
	if (NULL == m_pDIPAddrCtl) 
		m_pDIPAddrCtl = (CIPAddrCtl*) GetDlgItem(IDC_IPDADDR); 
	ASSERT(NULL != m_pDIPAddrCtl); 
	 
	//{{AFX_DATA_MAP(CFileterDlg) 
	DDX_Control(pDX, ID_LIST_SPORT, m_list_sport); 
	DDX_Control(pDX, ID_LIST_DPORT, m_list_dport); 
	DDX_Control(pDX, ID_LIST_DIP, m_list_dip); 
	DDX_Control(pDX, ID_LIST_SIP, m_list_sip); 
	DDX_Text(pDX, ID_EDIT_SPORT, m_edit_sport); 
	DDV_MinMaxInt(pDX, m_edit_sport, 0, 65535); 
	DDX_Text(pDX, ID_EDIT_DPORT, m_edit_dport); 
	DDV_MinMaxInt(pDX, m_edit_dport, 0, 65535); 
	//}}AFX_DATA_MAP 
	DDX_IPAddr(pDX, IDC_IPSADDR, m_sAddr); 
	DDX_IPAddr(pDX, IDC_IPDADDR, m_dAddr); 
 
} 
 
 
BEGIN_MESSAGE_MAP(CFileterDlg, CDialog) 
	//{{AFX_MSG_MAP(CFileterDlg) 
	ON_BN_CLICKED(ID_BUTTON_SIP_ADD, OnButtonSipAdd) 
	ON_BN_CLICKED(ID_BUTTON_DIP_ADD, OnButtonDipAdd) 
	ON_BN_CLICKED(ID_BUTTON_SPORT_ADD, OnButtonSportAdd) 
	ON_BN_CLICKED(ID_BUTTON_DPORT_ADD, OnButtonDportAdd) 
	ON_BN_CLICKED(ID_BUTTON_DIP_DEL, OnButtonDipDel) 
	ON_BN_CLICKED(ID_BUTTON_DPORT_DEL, OnButtonDportDel) 
	ON_BN_CLICKED(ID_BUTTON_SIP_DEL, OnButtonSipDel) 
	ON_BN_CLICKED(ID_BUTTON_SPORT_DEL, OnButtonSportDel) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CFileterDlg message handlers 
 
BOOL CFileterDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	//initialize filters' listboxes 
	int i; 
	char buffer[64]; 
	CGetPacketApp *pApp; 
 
	pApp=(CGetPacketApp*)AfxGetApp();  
	for(i=0;iSourceIP.GetSize();i++) 
		m_list_sip.AddString(pApp->SourceIP.GetAt(i).GetBuffer(0)); 
	for(i=0;iSourcePort.GetSize();i++) 
		m_list_sport.AddString(_itoa( pApp->SourcePort.GetAt(i), buffer, 10 )); 
	for(i=0;iDestIP.GetSize();i++) 
		m_list_dip.AddString(pApp->DestIP.GetAt(i).GetBuffer(0)); 
	for(i=0;iDestPort.GetSize();i++) 
		m_list_dport.AddString(_itoa( pApp->DestPort.GetAt(i), buffer, 10 )); 
	 
	return TRUE;   
 
} 
 
void CFileterDlg::OnOK()  
{ 
	char buffer[64]; 
	//clear filters 
	CGetPacketApp *pApp; 
	pApp=(CGetPacketApp*)AfxGetApp();  
	pApp->SourceIP.RemoveAll(); 
	pApp->SourcePort.RemoveAll(); 
	pApp->DestIP.RemoveAll(); 
	pApp->DestPort.RemoveAll(); 
 
	//add new filters 
	int i; 
	for(i=0;iSourceIP.Add(buffer); 
	} 
	for(i=0;iSourcePort.Add(atoi(buffer));  
	} 
	for(i=0;iDestIP.Add(buffer); 
	} 
	for(i=0;iDestPort.Add(atoi(buffer));  
	} 
	 
	CDialog::OnOK(); 
} 
 
 
void CFileterDlg::OnButtonSipAdd()  
{ 
	if(!UpdateData(TRUE)) 
		return; 
 
	if(m_sAddr[0]|m_sAddr[1]|m_sAddr[2]|m_sAddr[3]) 
	{ 
		int i; 
		char buffer[64],text[64]; 
		wsprintf(buffer,"%hu.%hu.%hu.%hu\0",m_sAddr[0],m_sAddr[1],m_sAddr[2],m_sAddr[3]); 
		for(i=0;i