version 0.1.7
[fms.git] / src / http / pages / addpeerpage.cpp
diff --git a/src/http/pages/addpeerpage.cpp b/src/http/pages/addpeerpage.cpp
new file mode 100644 (file)
index 0000000..7b4d706
--- /dev/null
@@ -0,0 +1,56 @@
+#include "../../../include/http/pages/addpeerpage.h"\r
+#include "../../../include/stringfunctions.h"\r
+#include "../../../include/datetime.h"\r
+\r
+#ifdef XMEM\r
+       #include <xmem.h>\r
+#endif\r
+\r
+const std::string AddPeerPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
+{\r
+       std::string content="";\r
+\r
+       if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="add")\r
+       {\r
+               DateTime date;\r
+               std::string publickey="";\r
+               if(queryvars.find("publickey")!=queryvars.end())\r
+               {\r
+                       publickey=(*queryvars.find("publickey")).second;\r
+               }\r
+               if(publickey!="" && publickey.find("SSK@")==0 && publickey[publickey.size()-1]=='/')\r
+               {\r
+                       date.SetToGMTime();\r
+                       SQLite3DB::Statement st=m_db->Prepare("INSERT INTO tblIdentity(PublicKey,DateAdded) VALUES(?,?);");\r
+                       st.Bind(0,publickey);\r
+                       st.Bind(1,date.Format("%Y-%m-%d %H:%M:%S"));\r
+                       st.Step();\r
+                       st.Reset();\r
+               }\r
+       }\r
+\r
+       content+="<h2>Add Peer</h2>";\r
+       content+="<form name=\"frmaddpeer\" method=\"POST\">";\r
+       content+="<input type=\"hidden\" name=\"formaction\" value=\"add\">";\r
+       content+="Public Key : ";\r
+       content+="<input type=\"text\" name=\"publickey\" size=\"100\">";\r
+       content+="<br>";\r
+       content+="The public key must be a valid SSK public key and include the / at the end";\r
+       content+="<br>";\r
+       content+="<input type=\"submit\" value=\"Add\">";\r
+       content+="</form>";\r
+\r
+       return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);\r
+}\r
+\r
+const bool AddPeerPage::WillHandleURI(const std::string &uri)\r
+{\r
+       if(uri.find("addpeer.")!=std::string::npos)\r
+       {\r
+               return true;\r
+       }\r
+       else\r
+       {\r
+               return false;\r
+       }\r
+}\r