std::string portstr;\r
Option::Instance()->Get("HTTPListenPort",portstr);\r
StringFunctions::Convert(portstr,m_listenport);\r
-\r
- // push back page handlers\r
- /*\r
- m_pagehandlers.push_back(new ShowCaptchaPage());\r
- m_pagehandlers.push_back(new OptionsPage(templatestr));\r
- m_pagehandlers.push_back(new LocalIdentitiesPage(templatestr));\r
- m_pagehandlers.push_back(new CreateIdentityPage(templatestr));\r
- m_pagehandlers.push_back(new AnnounceIdentityPage(templatestr));\r
- m_pagehandlers.push_back(new AddPeerPage(templatestr));\r
- m_pagehandlers.push_back(new PeerTrustPage(templatestr));\r
- m_pagehandlers.push_back(new ControlBoardPage(templatestr));\r
- m_pagehandlers.push_back(new PeerDetailsPage(templatestr));\r
- m_pagehandlers.push_back(new PeerMaintenancePage(templatestr));\r
- m_pagehandlers.push_back(new ExecQueryPage(templatestr));\r
- m_pagehandlers.push_back(new BoardsPage(templatestr));\r
- m_pagehandlers.push_back(new InsertedFilesPage(templatestr));\r
- m_pagehandlers.push_back(new ConfirmPage(templatestr));\r
- // homepage must be last - catch all page handler\r
- m_pagehandlers.push_back(new HomePage(templatestr));\r
- */\r
- \r
}\r
\r
-/*\r
-void HTTPThread::PageCallback(shttpd_arg *arg)\r
-{\r
-\r
- HTTPThread *thread=(HTTPThread *)arg->user_data;\r
-\r
- for(std::vector<IPageHandler *>::iterator i=thread->m_pagehandlers.begin(); i!=thread->m_pagehandlers.end(); )\r
- {\r
- if((*i)->Handle(arg)==true)\r
- {\r
- i=thread->m_pagehandlers.end();\r
- }\r
- else\r
- {\r
- i++;\r
- }\r
- }\r
-\r
-}\r
-*/\r
void HTTPThread::run()\r
{\r
m_log->debug("HTTPThread::run thread started.");\r
m_log->trace("Trying to stop HTTPServer");\r
srv.stop();\r
m_log->trace("Stopped HTTPServer");\r
+ \r
+ m_log->trace("Waiting for current HTTP requests to finish");\r
+ while(srv.currentConnections()>0)\r
+ {\r
+ Poco::Thread::sleep(500);\r
+ }\r
\r
m_log->debug("HTTPThread::run thread exiting.");\r
\r