--- /dev/null
+#include "../../../include/http/pages/showcaptchapage.h"\r
+#include "../../../include/base64.h"\r
+#include "../../../include/stringfunctions.h"\r
+\r
+#ifdef XMEM\r
+ #include <xmem.h>\r
+#endif\r
+\r
+const std::string ShowCaptchaPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
+{\r
+ std::string content="HTTP/1.1 200 OK\r\n";\r
+ if(queryvars.find("UUID")!=queryvars.end())\r
+ {\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT MimeType,PuzzleData FROM tblIntroductionPuzzleRequests WHERE UUID=?;");\r
+ st.Bind(0,(*queryvars.find("UUID")).second);\r
+ st.Step();\r
+\r
+ if(st.RowReturned())\r
+ {\r
+ std::string mime;\r
+ std::string b64data;\r
+ std::vector<unsigned char> data;\r
+ std::string lenstr;\r
+\r
+ st.ResultText(0,mime);\r
+ st.ResultText(1,b64data);\r
+ Base64::Decode(b64data,data);\r
+ StringFunctions::Convert(data.size(),lenstr);\r
+\r
+ content+="Content-Type: "+mime+"\r\n";\r
+ content+="Content-Length: "+lenstr+"\r\n\r\n";\r
+ content+=std::string(data.begin(),data.end());\r
+ }\r
+ }\r
+ return content;\r
+}\r
+\r
+const bool ShowCaptchaPage::WillHandleURI(const std::string &uri)\r
+{\r
+ if(uri.find("showcaptcha.")!=std::string::npos)\r
+ {\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+}\r