// Code to be executed by the thread void *vncHTTPConnectThread::run_undetached(void * arg) { vnclog.Print(LL_INTINFO, VNCLOG("started HTTP server thread\n")); // Go into a loop, listening for connections on the given socket while (!m_shutdown) { // Accept an incoming connection VSocket *new_socket = m_socket->Accept(); if (new_socket == NULL) break; vnclog.Print(LL_CLIENTS, VNCLOG("HTTP client connected\n")); // Successful accept - perform the transaction new_socket->SetTimeout(15000); DoHTTP(new_socket); // And close the client new_socket->Shutdown(); new_socket->Close(); delete new_socket; } vnclog.Print(LL_INTINFO, VNCLOG("quitting HTTP server thread\n")); return NULL; }
void HTTPTick( uint8_t timed ) { uint8_t i; for( i = 0; i < HTTP_CONNECTIONS; i++ ) { if( curhttp ) { printf( "Unexpected Race Condition\n" );} curhttp = &HTTPConnections[i]; DoHTTP( timed ); curhttp = 0; } }