#include "../../include/freenet/trustlistxml.h"\r
#include "../../include/stringfunctions.h"\r
\r
+#include <algorithm>\r
+\r
#ifdef XMEM\r
#include <xmem.h>\r
#endif\r
Initialize();\r
}\r
\r
-void TrustListXML::AddTrust(const std::string &identity, const long messagetrust, const long trustlisttrust)\r
+void TrustListXML::AddTrust(const std::string &identity, const long messagetrust, const long trustlisttrust, const std::string &messagetrustcomment, const std::string &trustlisttrustcomment)\r
{\r
- m_trust.push_back(trust(identity,messagetrust,trustlisttrust));\r
+ m_trust.push_back(trust(identity,messagetrust,trustlisttrust,messagetrustcomment,trustlisttrustcomment));\r
}\r
\r
std::string TrustListXML::GetIdentity(const long index)\r
} \r
}\r
\r
+std::string TrustListXML::GetMessageTrustComment(const long index)\r
+{\r
+ if(index>=0 && index<m_trust.size())\r
+ {\r
+ return m_trust[index].m_messagetrustcomment;\r
+ }\r
+ else\r
+ {\r
+ return "";\r
+ } \r
+}\r
+\r
long TrustListXML::GetTrustListTrust(const long index)\r
{\r
if(index>=0 && index<m_trust.size())\r
}\r
}\r
\r
+std::string TrustListXML::GetTrustListTrustComment(const long index)\r
+{\r
+ if(index>=0 && index<m_trust.size())\r
+ {\r
+ return m_trust[index].m_trustlisttrustcomment;\r
+ }\r
+ else\r
+ {\r
+ return "";\r
+ }\r
+}\r
+\r
std::string TrustListXML::GetXML()\r
{\r
TiXmlDocument td;\r
TiXmlElement *tr=new TiXmlElement("Trust");\r
tid->LinkEndChild(tr);\r
tr->LinkEndChild(XMLCreateCDATAElement("Identity",(*i).m_identity));\r
- tr->LinkEndChild(XMLCreateTextElement("MessageTrustLevel",messagetrust));\r
- tr->LinkEndChild(XMLCreateTextElement("TrustListTrustLevel",trustlisttrust));\r
+ if((*i).m_messagetrust>=0)\r
+ {\r
+ tr->LinkEndChild(XMLCreateTextElement("MessageTrustLevel",messagetrust));\r
+ }\r
+ if((*i).m_trustlisttrust>=0)\r
+ {\r
+ tr->LinkEndChild(XMLCreateTextElement("TrustListTrustLevel",trustlisttrust));\r
+ }\r
+ if((*i).m_messagetrustcomment!="")\r
+ {\r
+ tr->LinkEndChild(XMLCreateCDATAElement("MessageTrustComment",(*i).m_messagetrustcomment));\r
+ }\r
+ if((*i).m_trustlisttrustcomment!="")\r
+ {\r
+ tr->LinkEndChild(XMLCreateCDATAElement("TrustListTrustComment",(*i).m_trustlisttrustcomment));\r
+ }\r
}\r
\r
td.Accept(&tp);\r
std::string identity;\r
std::string messagetruststr;\r
std::string trustlisttruststr;\r
+ std::string messagetrustcomment="";\r
+ std::string trustlisttrustcomment="";\r
long messagetrust;\r
long trustlisttrust;\r
TiXmlText *txt;\r
TiXmlHandle hnd(&td);\r
TiXmlNode *node;\r
+ std::vector<std::string> m_foundkeys;\r
\r
Initialize();\r
\r
identity="";\r
messagetrust=-1;\r
trustlisttrust=-1;\r
+ messagetrustcomment="";\r
+ trustlisttrustcomment="";\r
\r
TiXmlHandle hnd2(node);\r
txt=hnd2.FirstChild("Identity").FirstChild().ToText();\r
if(txt)\r
{\r
messagetruststr=txt->ValueStr();\r
- StringFunctions::Convert(messagetruststr,messagetrust);\r
+ if(messagetruststr!="")\r
+ {\r
+ StringFunctions::Convert(messagetruststr,messagetrust);\r
+ }\r
}\r
txt=hnd2.FirstChild("TrustListTrustLevel").FirstChild().ToText();\r
if(txt)\r
{\r
trustlisttruststr=txt->ValueStr();\r
- StringFunctions::Convert(trustlisttruststr,trustlisttrust);\r
+ if(trustlisttruststr!="")\r
+ {\r
+ StringFunctions::Convert(trustlisttruststr,trustlisttrust);\r
+ }\r
+ }\r
+ txt=hnd2.FirstChild("MessageTrustComment").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ messagetrustcomment=txt->ValueStr();\r
+ }\r
+ txt=hnd2.FirstChild("TrustListTrustComment").FirstChild().ToText();\r
+ if(txt)\r
+ {\r
+ trustlisttrustcomment=txt->ValueStr();\r
}\r
\r
- if(identity!="" && messagetrust>=0 && messagetrust<=100 && trustlisttrust>=0 && trustlisttrust<=100)\r
+ if(identity!="" && messagetrust>=-1 && messagetrust<=100 && trustlisttrust>=-1 && trustlisttrust<=100)\r
{\r
- m_trust.push_back(trust(identity,messagetrust,trustlisttrust));\r
+ // check so we don't add the same identity multiple times from a trust list\r
+ if(std::find(m_foundkeys.begin(),m_foundkeys.end(),identity)==m_foundkeys.end())\r
+ {\r
+ m_foundkeys.push_back(identity);\r
+ m_trust.push_back(trust(identity,messagetrust,trustlisttrust,messagetrustcomment,trustlisttrustcomment));\r
+ }\r
}\r
else\r
{\r