tid->LinkEndChild(brds);\r
for(std::vector<std::string>::iterator i=m_boards.begin(); i!=m_boards.end(); i++)\r
{\r
- brds->LinkEndChild(XMLCreateCDATAElement("Board",(*i)));\r
+ std::string boardname=(*i);\r
+ StringFunctions::Convert(boardname,boardname);\r
+ brds->LinkEndChild(XMLCreateCDATAElement("Board",boardname));\r
}\r
\r
if(m_inreplyto.size()>0)\r
}\r
}\r
\r
+ // add attachemnt node if we have attachments\r
+ if(m_fileattachments.size()>0)\r
+ {\r
+ TiXmlElement *attachments=new TiXmlElement("Attachments");\r
+ tid->LinkEndChild(attachments);\r
+ for(std::vector<fileattachment>::iterator j=m_fileattachments.begin(); j!=m_fileattachments.end(); j++)\r
+ {\r
+ TiXmlElement *f=new TiXmlElement("File");\r
+ attachments->LinkEndChild(f);\r
+ f->LinkEndChild(XMLCreateCDATAElement("Key",(*j).m_key));\r
+ f->LinkEndChild(XMLCreateTextElement("Size",(*j).m_size));\r
+ }\r
+ }\r
+\r
td.Accept(&tp);\r
return std::string(tp.CStr());\r
}\r
m_replyboard="";\r
m_inreplyto.clear();\r
m_body="";\r
+ m_fileattachments.clear();\r
}\r
\r
const bool MessageXML::ParseXML(const std::string &xml)\r
txt=hnd.FirstChild("Message").FirstChild("Date").FirstChild().ToText();\r
if(txt)\r
{\r
- m_date=txt->ValueStr();\r
+ m_date=SanitizeSingleString(txt->ValueStr());\r
}\r
txt=hnd.FirstChild("Message").FirstChild("Time").FirstChild().ToText();\r
if(txt)\r
{\r
- m_time=txt->ValueStr();\r
+ m_time=SanitizeSingleString(txt->ValueStr());\r
}\r
txt=hnd.FirstChild("Message").FirstChild("Subject").FirstChild().ToText();\r
if(txt)\r
{\r
- m_subject=txt->ValueStr();\r
+ m_subject=SanitizeSingleString(txt->ValueStr());\r
}\r
txt=hnd.FirstChild("Message").FirstChild("MessageID").FirstChild().ToText();\r
if(txt)\r
{\r
- m_messageid=txt->ValueStr();\r
+ m_messageid=SanitizeSingleString(txt->ValueStr());\r
}\r
txt=hnd.FirstChild("Message").FirstChild("ReplyBoard").FirstChild().ToText();\r
if(txt)\r
{\r
- m_replyboard=txt->ValueStr();\r
+ m_replyboard=SanitizeSingleString(txt->ValueStr());\r
+ StringFunctions::LowerCase(m_replyboard,m_replyboard);\r
+ if(m_replyboard.size()>40)\r
+ {\r
+ m_replyboard.erase(40);\r
+ }\r
}\r
txt=hnd.FirstChild("Message").FirstChild("Body").FirstChild().ToText();\r
if(txt)\r
{\r
if(node2->FirstChild())\r
{\r
- m_boards.push_back(node2->FirstChild()->ValueStr());\r
+ std::string boardname=SanitizeSingleString(node2->FirstChild()->ValueStr());\r
+ StringFunctions::LowerCase(boardname,boardname);\r
+ if(boardname.size()>40)\r
+ {\r
+ boardname.erase(40);\r
+ }\r
+ m_boards.push_back(boardname);\r
}\r
node2=node2->NextSibling("Board");\r
}\r
txt=hnd2.FirstChild("Order").FirstChild().ToText();\r
if(txt)\r
{\r
- orderstr=txt->ValueStr();\r
+ orderstr=SanitizeSingleString(txt->ValueStr());\r
StringFunctions::Convert(orderstr,order);\r
}\r
txt=hnd2.FirstChild("MessageID").FirstChild().ToText();\r
if(txt)\r
{\r
- messageid=txt->ValueStr();\r
+ messageid=SanitizeSingleString(txt->ValueStr());\r
}\r
\r
if(order!=-1 && messageid!="")\r
node2=node2->NextSibling("Message");\r
}\r
\r
+ node2=hnd.FirstChild("Message").FirstChild("Attachments").FirstChild("File").ToNode();\r
+ while(node2)\r
+ {\r
+ std::string key="";\r
+ std::string sizestr="-1";\r
+ int size=-1;\r
+\r
+ TiXmlHandle hnd2(node2);\r
+\r
+ txt=hnd2.FirstChild("Key").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ key=SanitizeSingleString(txt->ValueStr());\r
+ }\r
+\r
+ txt=hnd2.FirstChild("Size").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ sizestr=SanitizeSingleString(txt->ValueStr());\r
+ StringFunctions::Convert(sizestr,size);\r
+ }\r
+\r
+ if(key!="" && size>0)\r
+ {\r
+ m_fileattachments.push_back(fileattachment(key,size));\r
+ }\r
+\r
+ node2=node2->NextSibling("File");\r
+ }\r
+\r
return true;\r
}\r
else\r