// 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;
}
Esempio n. 2
0
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;
	}
}