void ProcessSourceIPTraffic(PSCANPARAMS pScanParams, char *pProtocol, IPADDRESS pSrcIP, IPADDRESS pDstIP, unsigned int pSrcPort, unsigned int pDstPort, int pDataLen) { char lDstIP[MAX_IP_LEN]; char lSrcIP[MAX_IP_LEN]; PHOSTNODE lNode = NULL; unsigned long lLocalIP = 0; unsigned long lPeerIP1 = 0; unsigned long lPeerIP2 = 0; char lTimeStamp[128]; time_t lRawtime; struct tm * lTimeinfo; CopyMemory(&lLocalIP, pScanParams->LocalIP, 4); CopyMemory(&lPeerIP1, &pSrcIP, 4); CopyMemory(&lPeerIP2, &pDstIP, 4); _snprintf(lSrcIP, sizeof(lSrcIP) - 1, "%d.%d.%d.%d", pSrcIP.byte1, pSrcIP.byte2, pSrcIP.byte3, pSrcIP.byte4); _snprintf(lDstIP, sizeof(lDstIP) - 1, "%d.%d.%d.%d", pDstIP.byte1, pDstIP.byte2, pDstIP.byte3, pDstIP.byte4); time (&lRawtime); lTimeinfo = localtime (&lRawtime); ZeroMemory(lTimeStamp, sizeof(lTimeStamp)); strftime(lTimeStamp, sizeof(lTimeStamp) - 1, "%H:%M:%S", lTimeinfo); if (IPAddrBelongsToLocalNet(lLocalIP, pScanParams->Netmask, lPeerIP1) == 0) { if ((lNode = GetNodeByIP(gHosts, lPeerIP1)) != NULL || (lNode = AddRecordToList(&gHosts, lPeerIP1)) != NULL) { lNode->sData.DataVolume += pDataLen; lNode->sData.PacketCounter++; strncpy((char *) lNode->sData.LastUpdate, lTimeStamp, sizeof(lNode->sData.LastUpdate)-1); } } else if (IPAddrBelongsToLocalNet(lLocalIP, pScanParams->Netmask, lPeerIP2) == 0) { if ((lNode = GetNodeByIP(gHosts, lPeerIP2)) != NULL || (lNode = AddRecordToList(&gHosts, lPeerIP2)) != NULL) { lNode->sData.DataVolume += pDataLen; lNode->sData.PacketCounter++; strncpy((char *) lNode->sData.LastUpdate, lTimeStamp, sizeof(lNode->sData.LastUpdate)-1); } } else { // printf("ProcessSourceIPTraffic(2) : (%s) Unknown %s:%d->%s:%d %d\n", pProtocol, lSrcIP, pSrcPort, lDstIP, pDstPort, pDataLen); } }
void UpdateDlg::FillFiles(const wxTreeItemId& id) { wxTreeCtrl* tree = XRCCTRL(*this, "tvCategories", wxTreeCtrl); wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); lst->Freeze(); lst->ClearAll(); CreateListColumns(); wxString group = id == tree->GetRootItem() ? _T("") : tree->GetItemText(id); // add files belonging to group int counter = 0; for (int i = 0; i < m_RecsCount; ++i) { if (group.IsEmpty() || (!m_Recs[i].groups.IsEmpty() && m_Recs[i].groups.Index(group) != wxNOT_FOUND)) { // filter if (FilterRec(&m_Recs[i])) { AddRecordToList(&m_Recs[i]); ++counter; } } } lst->Thaw(); // select first item lst->SetItemState(0, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED); }