1 #include "../../include/http/httpthread.h"
\r
2 #include "../../include/http/fmshttprequesthandlerfactory.h"
\r
3 #include "../../include/option.h"
\r
4 #include "../../include/stringfunctions.h"
\r
6 #include <Poco/Net/ServerSocket.h>
\r
7 #include <Poco/Net/HTTPServer.h>
\r
8 #include <Poco/Net/HTTPServerParams.h>
\r
16 HTTPThread::HTTPThread()
\r
19 std::string portstr;
\r
20 Option::Instance()->Get("HTTPListenPort",portstr);
\r
21 StringFunctions::Convert(portstr,m_listenport);
\r
23 // push back page handlers
\r
25 m_pagehandlers.push_back(new ShowCaptchaPage());
\r
26 m_pagehandlers.push_back(new OptionsPage(templatestr));
\r
27 m_pagehandlers.push_back(new LocalIdentitiesPage(templatestr));
\r
28 m_pagehandlers.push_back(new CreateIdentityPage(templatestr));
\r
29 m_pagehandlers.push_back(new AnnounceIdentityPage(templatestr));
\r
30 m_pagehandlers.push_back(new AddPeerPage(templatestr));
\r
31 m_pagehandlers.push_back(new PeerTrustPage(templatestr));
\r
32 m_pagehandlers.push_back(new ControlBoardPage(templatestr));
\r
33 m_pagehandlers.push_back(new PeerDetailsPage(templatestr));
\r
34 m_pagehandlers.push_back(new PeerMaintenancePage(templatestr));
\r
35 m_pagehandlers.push_back(new ExecQueryPage(templatestr));
\r
36 m_pagehandlers.push_back(new BoardsPage(templatestr));
\r
37 m_pagehandlers.push_back(new InsertedFilesPage(templatestr));
\r
38 m_pagehandlers.push_back(new ConfirmPage(templatestr));
\r
39 // homepage must be last - catch all page handler
\r
40 m_pagehandlers.push_back(new HomePage(templatestr));
\r
46 void HTTPThread::PageCallback(shttpd_arg *arg)
\r
49 HTTPThread *thread=(HTTPThread *)arg->user_data;
\r
51 for(std::vector<IPageHandler *>::iterator i=thread->m_pagehandlers.begin(); i!=thread->m_pagehandlers.end(); )
\r
53 if((*i)->Handle(arg)==true)
\r
55 i=thread->m_pagehandlers.end();
\r
65 void HTTPThread::run()
\r
67 m_log->debug("HTTPThread::run thread started.");
\r
69 Poco::Net::ServerSocket sock(m_listenport);
\r
70 Poco::Net::HTTPServerParams* pParams = new Poco::Net::HTTPServerParams;
\r
71 pParams->setMaxQueued(10);
\r
72 pParams->setMaxThreads(5);
\r
73 Poco::Net::HTTPServer srv(new FMSHTTPRequestHandlerFactory,sock,pParams);
\r
79 Poco::Thread::sleep(1000);
\r
80 }while(!IsCancelled());
\r
84 m_log->debug("HTTPThread::run thread exiting.");
\r