int main(int argc, char* argv[]) { if ((argc < 2) || (argc > 4)) { fprintf(stderr, "Usage: (depends on the parameters)\n"); fprintf(stderr, " %s type filename sha1.md5.len\n", argv[0]); fprintf(stderr, " echo 'sha1.md5.len filename' | %s type\n", argv[0]); fprintf(stderr, " echo '<xml from ununpack>...</xml>' | %s typesource type\n", argv[0]); fprintf(stderr, " type = repository for storing files\n"); fprintf(stderr, " typesource = repository for storing source files (XML only)\n"); exit(-1); } switch (argc) { case 2: /* pairs from stdin */ ProcessPairs(stdin, argv[1]); break; case 3: /* pairs from XML */ ProcessXML(stdin, argv[1], argv[2]); break; case 4: /* pairs from command-line */ CopyFile(argv[2], argv[1], argv[3]); break; } printf("Total Imported: %ld\n", TotalImported); printf("Total Duplicates: %ld\n", TotalDuplicate); printf("Total Errors: %ld\n", TotalError); if (TotalError > 0) return (1); return (0); } /* main() */
BOOL CNetworkMonitorBox::ProcessXML(HANDLE hSnapshot, POSITION posNext) { CXMLElement* pXML = Profiles.FindProcess( NULL, posNext ); if ( pXML == NULL ) return FALSE; PROCESSENTRY32 pe; pe.dwSize = sizeof( PROCESSENTRY32 ); for ( BOOL bRetval = Process32First(hSnapshot,&pe); bRetval; ) { if ( HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pe.th32ProcessID ) ) { TCHAR szPath[128]; if ( GetModuleFileNameEx( hProcess, NULL, szPath, MAX_PATH ) ) TRACE("%s\n", szPath); CloseHandle( hProcess ); } pe.dwSize = sizeof( PROCESSENTRY32 ); bRetval = Process32Next( hSnapshot, &pe ); } if ( posNext ) return ProcessXML( hSnapshot, posNext ); return TRUE; }
BOOL CNetworkMonitorBox::ProcessXML(POSITION posNext) { CXMLElement* pXML = Profiles.FindProcess( NULL, posNext ); if ( pXML == NULL ) return FALSE; CSingleLock pLock( &Network.m_pSection, TRUE ); CString strValue = pXML->GetAttributeValue( "Host" ); if ( CChannel* pChannel = Network.FindChannel( strValue ) ) { if ( pChannel->m_hSocket == INVALID_SOCKET && pChannel->TimeOut( 60 * 1000 ) ) { CXMLAttribute* pAttri = pXML->GetAttribute( "Retry" ); if ( ! pAttri ) pAttri = pXML->AddAttribute( "Retry" ); if ( _ttoi( pAttri->GetValue() ) >= 2 ) { AlarmToShortMessage( (LPCTSTR)strValue ); strValue = pXML->GetAttributeValue( _T("Path") ); RestartMachine( (LPCTSTR)strValue ); pXML->DeleteAttribute( "Retry" ); } else { strValue.Format( "%i", _ttoi( pAttri->GetValue() ) + 1 ); pAttri->SetValue( (LPCTSTR)strValue ); pChannel->LinkRestart(); pChannel->m_tConnected = GetTickCount(); } } else if ( pChannel->IsConnected() ) { pXML->DeleteAttribute( "Retry" ); } } else { CChannel* pChannel = new CSentryChannel( pXML ); Network.SetChannel( pChannel ); pChannel->LinkRestart(); } if ( posNext ) return ProcessXML( posNext ); return TRUE; }
BOOL CNetworkMonitorBox::ClearProcess(POSITION posNext) { CXMLElement* pXML = Profiles.FindProcess( NULL, posNext ); if ( pXML == NULL ) return FALSE; CSingleLock pLock( &Network.m_pSection, TRUE ); CString strValue = pXML->GetAttributeValue( "Host" ); CChannel* pChannel = Network.FindChannel( strValue ); if ( pChannel ) pChannel->Release(); if ( posNext ) return ProcessXML( posNext ); return TRUE; }
void CNetworkMonitorBox::OnTimer(UINT nIDEvent) { /* HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); if ( hSnapshot == INVALID_HANDLE_VALUE ) return; ProcessXML( hSnapshot, NULL ); CloseHandle( hSnapshot ); if ( nIDEvent == 88 ) { m_wndClock.SetStyle( CEDClock::EClockStyle::XDC_FLOWNEXT ); } */ //if ( (nIDEvent >> 4) == CEDClock::XDC_FLOWBACK ) ProcessXML( NULL ); CTaskBox::OnTimer( nIDEvent ); }