X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fhttpthread.cpp;h=89edc931cfb884ddaf85e585738a08d1fae6abef;hb=023b2219068d481cd6a300982427c99bacd88a12;hp=ceaad4ff136fe078ec9e0e1a723499d2309626e3;hpb=dec33c63afafabf83c3039e916725cac6faef9b3;p=fms.git diff --git a/src/http/httpthread.cpp b/src/http/httpthread.cpp index ceaad4f..89edc93 100644 --- a/src/http/httpthread.cpp +++ b/src/http/httpthread.cpp @@ -19,67 +19,35 @@ HTTPThread::HTTPThread() std::string portstr; Option::Instance()->Get("HTTPListenPort",portstr); StringFunctions::Convert(portstr,m_listenport); - - // push back page handlers - /* - m_pagehandlers.push_back(new ShowCaptchaPage()); - m_pagehandlers.push_back(new OptionsPage(templatestr)); - m_pagehandlers.push_back(new LocalIdentitiesPage(templatestr)); - m_pagehandlers.push_back(new CreateIdentityPage(templatestr)); - m_pagehandlers.push_back(new AnnounceIdentityPage(templatestr)); - m_pagehandlers.push_back(new AddPeerPage(templatestr)); - m_pagehandlers.push_back(new PeerTrustPage(templatestr)); - m_pagehandlers.push_back(new ControlBoardPage(templatestr)); - m_pagehandlers.push_back(new PeerDetailsPage(templatestr)); - m_pagehandlers.push_back(new PeerMaintenancePage(templatestr)); - m_pagehandlers.push_back(new ExecQueryPage(templatestr)); - m_pagehandlers.push_back(new BoardsPage(templatestr)); - m_pagehandlers.push_back(new InsertedFilesPage(templatestr)); - m_pagehandlers.push_back(new ConfirmPage(templatestr)); - // homepage must be last - catch all page handler - m_pagehandlers.push_back(new HomePage(templatestr)); - */ - } -/* -void HTTPThread::PageCallback(shttpd_arg *arg) -{ - - HTTPThread *thread=(HTTPThread *)arg->user_data; - - for(std::vector::iterator i=thread->m_pagehandlers.begin(); i!=thread->m_pagehandlers.end(); ) - { - if((*i)->Handle(arg)==true) - { - i=thread->m_pagehandlers.end(); - } - else - { - i++; - } - } - -} -*/ void HTTPThread::run() { m_log->debug("HTTPThread::run thread started."); Poco::Net::ServerSocket sock(m_listenport); Poco::Net::HTTPServerParams* pParams = new Poco::Net::HTTPServerParams; - pParams->setMaxQueued(10); + pParams->setMaxQueued(30); pParams->setMaxThreads(5); Poco::Net::HTTPServer srv(new FMSHTTPRequestHandlerFactory,sock,pParams); srv.start(); + m_log->trace("Started HTTPServer"); do { Poco::Thread::sleep(1000); }while(!IsCancelled()); + m_log->trace("Trying to stop HTTPServer"); srv.stop(); + m_log->trace("Stopped HTTPServer"); + + m_log->trace("Waiting for current HTTP requests to finish"); + while(srv.currentConnections()>0) + { + Poco::Thread::sleep(500); + } m_log->debug("HTTPThread::run thread exiting.");