X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fhttp%2Fhttpthread.cpp;h=827ce289446e8ce953f39edf624744d95f4efc4e;hp=dd4bd9b731a685f2d0696bc1c3ee1144462e4a87;hb=f208e33c29132aacaec448e74341edea1b925a2a;hpb=d8ccfe2b3944adf07d35534459cdda19d15217c8 diff --git a/src/http/httpthread.cpp b/src/http/httpthread.cpp index dd4bd9b..827ce28 100644 --- a/src/http/httpthread.cpp +++ b/src/http/httpthread.cpp @@ -2,6 +2,13 @@ #include "../../include/option.h" #include "../../include/stringfunctions.h" #include "../../include/http/pages/homepage.h" +#include "../../include/http/pages/optionspage.h" +#include "../../include/http/pages/showcaptchapage.h" +#include "../../include/http/pages/createidentitypage.h" +#include "../../include/http/pages/localidentitiespage.h" +#include "../../include/http/pages/announceidentitypage.h" +#include "../../include/http/pages/addpeerpage.h" +#include "../../include/http/pages/peertrustpage.h" #include @@ -11,13 +18,40 @@ HTTPThread::HTTPThread() { - + std::string templatestr; int port; std::string portstr; Option::Instance()->Get("HTTPListenPort",portstr); StringFunctions::Convert(portstr,port); - m_pagehandlers.push_back(new HomePage()); + // set template + templatestr="Home
[CONTENT]"; + FILE *infile=fopen("template.htm","r+b"); + if(infile) + { + fseek(infile,0,SEEK_END); + long len=ftell(infile); + std::vector data(len,0); + fseek(infile,0,SEEK_SET); + fread(&data[0],1,len,infile); + fclose(infile); + templatestr.assign(data.begin(),data.end()); + } + else + { + m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"HTTPThread::HTTPThread could not open template.htm"); + } + + // 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)); + // homepage must be last - catch all page handler + m_pagehandlers.push_back(new HomePage(templatestr)); m_ctx=0; m_ctx=shttpd_init(NULL,"listen_ports",portstr.c_str(),NULL);