version 0.2.4
[fms.git] / src / http / pages / addpeerpage.cpp
1 #include "../../../include/http/pages/addpeerpage.h"\r
2 #include "../../../include/stringfunctions.h"\r
3 #include "../../../include/datetime.h"\r
4 \r
5 #ifdef XMEM\r
6         #include <xmem.h>\r
7 #endif\r
8 \r
9 const std::string AddPeerPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
10 {\r
11         std::string content="";\r
12 \r
13         if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="add")\r
14         {\r
15                 DateTime date;\r
16                 std::string publickey="";\r
17                 if(queryvars.find("publickey")!=queryvars.end())\r
18                 {\r
19                         publickey=(*queryvars.find("publickey")).second;\r
20                 }\r
21                 if(publickey!="" && publickey.find("SSK@")==0 && publickey[publickey.size()-1]=='/')\r
22                 {\r
23                         date.SetToGMTime();\r
24                         SQLite3DB::Statement st=m_db->Prepare("INSERT INTO tblIdentity(PublicKey,DateAdded,AddedMethod) VALUES(?,?,?);");\r
25                         st.Bind(0,publickey);\r
26                         st.Bind(1,date.Format("%Y-%m-%d %H:%M:%S"));\r
27                         st.Bind(2,"manually");\r
28                         st.Step();\r
29                         st.Reset();\r
30                 }\r
31         }\r
32 \r
33         content+="<h2>Add Peer</h2>";\r
34         content+="<form name=\"frmaddpeer\" method=\"POST\">";\r
35         content+="<input type=\"hidden\" name=\"formaction\" value=\"add\">";\r
36         content+="Public Key : ";\r
37         content+="<input type=\"text\" name=\"publickey\" size=\"100\">";\r
38         content+="<br>";\r
39         content+="The public key must be a valid SSK public key and include the / at the end";\r
40         content+="<br>";\r
41         content+="<input type=\"submit\" value=\"Add\">";\r
42         content+="</form>";\r
43 \r
44         return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);\r
45 }\r
46 \r
47 const bool AddPeerPage::WillHandleURI(const std::string &uri)\r
48 {\r
49         if(uri.find("addpeer.")!=std::string::npos)\r
50         {\r
51                 return true;\r
52         }\r
53         else\r
54         {\r
55                 return false;\r
56         }\r
57 }\r