version 0.1.7
[fms.git] / src / http / httpthread.cpp
index dd4bd9b..827ce28 100644 (file)
@@ -2,6 +2,13 @@
 #include "../../include/option.h"\r
 #include "../../include/stringfunctions.h"\r
 #include "../../include/http/pages/homepage.h"\r
+#include "../../include/http/pages/optionspage.h"\r
+#include "../../include/http/pages/showcaptchapage.h"\r
+#include "../../include/http/pages/createidentitypage.h"\r
+#include "../../include/http/pages/localidentitiespage.h"\r
+#include "../../include/http/pages/announceidentitypage.h"\r
+#include "../../include/http/pages/addpeerpage.h"\r
+#include "../../include/http/pages/peertrustpage.h"\r
 \r
 #include <iostream>\r
 \r
 \r
 HTTPThread::HTTPThread()\r
 {\r
-\r
+       std::string templatestr;\r
        int port;\r
        std::string portstr;\r
        Option::Instance()->Get("HTTPListenPort",portstr);\r
        StringFunctions::Convert(portstr,port);\r
 \r
-       m_pagehandlers.push_back(new HomePage());\r
+       // set template\r
+       templatestr="<html><head></head><body><a href=\"home.htm\">Home</a><br>[CONTENT]</body></html>";\r
+       FILE *infile=fopen("template.htm","r+b");\r
+       if(infile)\r
+       {\r
+               fseek(infile,0,SEEK_END);\r
+               long len=ftell(infile);\r
+               std::vector<char> data(len,0);\r
+               fseek(infile,0,SEEK_SET);\r
+               fread(&data[0],1,len,infile);\r
+               fclose(infile);\r
+               templatestr.assign(data.begin(),data.end());\r
+       }\r
+       else\r
+       {\r
+               m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"HTTPThread::HTTPThread could not open template.htm");\r
+       }\r
+\r
+       // push back page handlers\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
+       // homepage must be last - catch all page handler\r
+       m_pagehandlers.push_back(new HomePage(templatestr));\r
 \r
        m_ctx=0;\r
        m_ctx=shttpd_init(NULL,"listen_ports",portstr.c_str(),NULL);\r