+ if((*queryvars.find("formaction")).second=="export")\r
+ {\r
+ IdentityExportXML xml;\r
+ SQLite3DB::Statement exp=m_db->Prepare("SELECT Name,PublicKey,PrivateKey,SingleUse,PublishTrustList,PublishBoardList,PublishFreesite FROM tblLocalIdentity WHERE PublicKey IS NOT NULL AND PrivateKey IS NOT NULL;");\r
+ exp.Step();\r
+ while(exp.RowReturned())\r
+ {\r
+ std::string name="";\r
+ std::string publickey="";\r
+ std::string privatekey="";\r
+ std::string tempval="";\r
+ bool singleuse=false;\r
+ bool publishtrustlist=false;\r
+ bool publishboardlist=false;\r
+ bool publishfreesite=false;\r
+\r
+ exp.ResultText(0,name);\r
+ exp.ResultText(1,publickey);\r
+ exp.ResultText(2,privatekey);\r
+ exp.ResultText(3,tempval);\r
+ if(tempval=="true")\r
+ {\r
+ singleuse=true;\r
+ }\r
+ exp.ResultText(4,tempval);\r
+ if(tempval=="true")\r
+ {\r
+ publishtrustlist=true;\r
+ }\r
+ exp.ResultText(5,tempval);\r
+ if(tempval=="true")\r
+ {\r
+ publishboardlist=true;\r
+ }\r
+ exp.ResultText(6,tempval);\r
+ if(tempval=="true")\r
+ {\r
+ publishfreesite=true;\r
+ }\r
+\r
+ xml.AddIdentity(name,publickey,privatekey,singleuse,publishtrustlist,publishboardlist,publishfreesite);\r
+\r
+ exp.Step();\r
+ }\r
+ return "HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\nContent-Disposition: attachment; filename=identities.xml\r\n\r\n"+xml.GetXML();\r
+ }\r
+ if((*queryvars.find("formaction")).second=="import")\r
+ {\r
+ if(queryvars.find("file")!=queryvars.end())\r
+ {\r
+ IdentityExportXML xml;\r
+ if(xml.ParseXML((*queryvars.find("file")).second))\r
+ {\r
+ SQLite3DB::Statement imp=m_db->Prepare("INSERT INTO tblLocalIdentity(Name,PublicKey,PrivateKey,SingleUse,PublishTrustList,PublishBoardList,PublishFreesite) VALUES(?,?,?,?,?,?,?);");\r
+ for(int i=0; i<xml.GetCount(); i++)\r
+ {\r
+ std::string tempval="false";\r
+ imp.Bind(0,xml.GetName(i));\r
+ imp.Bind(1,xml.GetPublicKey(i));\r
+ imp.Bind(2,xml.GetPrivateKey(i));\r
+ if(xml.GetSingleUse(i))\r
+ {\r
+ tempval="true";\r
+ }\r
+ else\r
+ {\r
+ tempval="false";\r
+ }\r
+ imp.Bind(3,tempval);\r
+ if(xml.GetPublishTrustList(i))\r
+ {\r
+ tempval="true";\r
+ }\r
+ else\r
+ {\r
+ tempval="false";\r
+ }\r
+ imp.Bind(4,tempval);\r
+ if(xml.GetPublishBoardList(i))\r
+ {\r
+ tempval="true";\r
+ }\r
+ else\r
+ {\r
+ tempval="false";\r
+ }\r
+ imp.Bind(5,tempval);\r
+ if(xml.GetPublishFreesite(i))\r
+ {\r
+ tempval="true";\r
+ }\r
+ else\r
+ {\r
+ tempval="false";\r
+ }\r
+ imp.Bind(6,tempval);\r
+ imp.Step();\r
+ imp.Reset();\r
+ }\r
+ }\r
+ }\r
+ }\r