PacketMonitor.cpp
上传用户:kklily621
上传日期:2013-06-25
资源大小:252k
文件大小:5k
- // PacketMonitor.cpp : implementation file
- //
- #include "stdafx.h"
- #include "Property.h"
- #include "PacketMonitor.h"
- //owner add
- #include "GuiRes.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- //=============================================================================================
- // CPacketMonitor property page
- extern CAclFile m_AclFile;
- extern CPropertyApp theApp;
- BOOL CPacketMonitor::IsScroll = TRUE;
- BOOL CPacketMonitor::IsMonitor = TRUE;
- CListCtrl *CPacketMonitor::m_pListPacketMonitor = NULL;
- IMPLEMENT_DYNCREATE(CPacketMonitor, CPropertyPage)
- CPacketMonitor::CPacketMonitor() : CPropertyPage(CPacketMonitor::IDD)
- {
- }
- CPacketMonitor::~CPacketMonitor()
- {
- }
- void CPacketMonitor::DoDataExchange(CDataExchange* pDX)
- {
- CPropertyPage::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CPacketMonitor)
- DDX_Control(pDX, IDC_LIST_PACKET_MONITOR, m_ListPacketMonitor);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CPacketMonitor, CPropertyPage)
- //{{AFX_MSG_MAP(CPacketMonitor)
- ON_BN_CLICKED(IDC_BUTTON_MONITOR, OnButtonMonitor)
- ON_BN_CLICKED(IDC_BUTTON_SCROLL, OnButtonScroll)
- ON_BN_CLICKED(IDC_BUTTON_CLEAR, OnButtonClear)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- //=============================================================================================
- // CPacketMonitor message handlers
- BOOL CPacketMonitor::OnInitDialog()
- {
- CPropertyPage::OnInitDialog();
- InitDlgResource();
-
- return TRUE;
- }
- //---------------------------------------------------------------------------------------------
- //initialize dialog's resource
- void CPacketMonitor::InitDlgResource()
- {
- SetDlgItemText(IDC_PACKET_MONITOR_LABLE, GUI_PACKET_MONITOR_LABLE);
- SetDlgItemText(IDC_BUTTON_SCROLL, GUI_PACKET_MONITOR_TOOLBAR_STOP_SCROLL);
- SetDlgItemText(IDC_BUTTON_MONITOR, GUI_PACKET_MONITOR_TOOLBAR_STOP_MONITOR);
- SetDlgItemText(IDC_BUTTON_CLEAR, GUI_PACKET_MONITOR_TOOLBAR_CLEAR);
- m_pListPacketMonitor = &m_ListPacketMonitor;
- InitList(&m_ListPacketMonitor);
- }
- //=============================================================================================
- // static function
- void CPacketMonitor::InitList(CListCtrl *mList)
- {
- ListView_SetExtendedListViewStyle(
- mList->m_hWnd,
- LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT
- );
- mList->InsertColumn(0, GUI_PACKET_MONITOR_LIST_ACTION,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_ACTION_SIZE
- );
- mList->InsertColumn(1, GUI_PACKET_MONITOR_LIST_STARTTIME_ENDTIME,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_STARTTIME_ENDTIME_SIZE + 2
- );
- mList->InsertColumn(2, GUI_PACKET_MONITOR_LIST_PROTOCOL,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_PROTOCOL_SIZE + 10
- );
- mList->InsertColumn(3, GUI_PACKET_MONITOR_LIST_IN_DATA,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_IN_DATA_SIZE - 8
- );
- mList->InsertColumn(4, GUI_PACKET_MONITOR_LIST_OUT_DATA,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_OUT_DATA_SIZE - 8
- );
- mList->InsertColumn(5, GUI_PACKET_MONITOR_LIST_IP_PORT,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_IP_PORT_SIZE + 32
- );
- mList->InsertColumn(6, GUI_PACKET_MONITOR_LIST_APPLICATION,
- LVCFMT_LEFT,
- GUI_PACKET_MONITOR_LIST_APPLICATION_SIZE + MAX_PATH * 4
- );
- }
- int CPacketMonitor::InsertOneList(
- CListCtrl * mList,
- SESSION *session,
- BOOL mIsAdd,
- BOOL mIsScroll
- )
- {
- if(mList == NULL)
- return XERR_LOG_INVALID_LIST;
- if(!mIsAdd)
- return XERR_LOG_NOT_MONITOR;
- if(session == NULL || session->s == 0)
- return XERR_LOG_INVALID_SESSION;
- CString tmpStr;
- int iIndex = mList->GetItemCount();
- mList->InsertItem(iIndex, GUI_ACTION[session->bAction]);
- tmpStr.Format(_T("%s - %s"),
- session->tStartTime.Format(_T("%m/%d %H:%M:%S")),
- session->tEndTime.Format(_T("%H:%M:%S"))
- );
- mList->SetItemText(iIndex, 1, tmpStr);
- mList->SetItemText(iIndex, 2, GUI_SERVICE_TYPE[session->bProtocol]);
- tmpStr.Format(_T("%u"),
- session->ulRecvData
- );
- mList->SetItemText(iIndex, 3, tmpStr);
- tmpStr.Format(_T("%u"),
- session->ulSendData
- );
- mList->SetItemText(iIndex, 4, tmpStr);
- tmpStr.Format(_T("%s,%u %s %s,%u"),
- CAclFile::DIPToSIP(&session->ulLocalIP),
- session->uiLocalPort,
- GUI_DIRECTION_EX[session->bDirection],
- CAclFile::DIPToSIP(&session->ulRemoteIP),
- session->uiPort
- );
- mList->SetItemText(iIndex, 5, tmpStr);
- tmpStr.Format(_T("%s :: %s"),
- session->sPathName,
- session->sMemo[0] == ' ' ? CAclFile::DIPToSIP(&session->ulRemoteIP) : session->sMemo
- );
- mList->SetItemText(iIndex, 6, tmpStr);
- if(mIsScroll)
- mList->EnsureVisible(iIndex, TRUE);
- return XERR_SUCCESS;
- }
- void CPacketMonitor::OnButtonScroll()
- {
- IsScroll = !IsScroll;
- SetDlgItemText(IDC_BUTTON_SCROLL, IsScroll ? GUI_PACKET_MONITOR_TOOLBAR_STOP_SCROLL
- : GUI_PACKET_MONITOR_TOOLBAR_START_SCROLL);
- }
- void CPacketMonitor::OnButtonMonitor()
- {
- IsMonitor = !IsMonitor;
- SetDlgItemText(IDC_BUTTON_MONITOR, IsMonitor ? GUI_PACKET_MONITOR_TOOLBAR_STOP_MONITOR
- : GUI_PACKET_MONITOR_TOOLBAR_START_MONITOR);
- }
- void CPacketMonitor::OnButtonClear()
- {
- m_ListPacketMonitor.DeleteAllItems();
- }