version 0.1.13
[fms.git] / src / freenet / trustlistxml.cpp
index c3e71db..d732105 100644 (file)
@@ -73,8 +73,14 @@ std::string TrustListXML::GetXML()
                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
        }\r
 \r
        td.Accept(&tp);\r
@@ -122,16 +128,22 @@ const bool TrustListXML::ParseXML(const std::string &xml)
                        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
 \r
-                       if(identity!="" && messagetrust>=0 && messagetrust<=100 && trustlisttrust>=0 && trustlisttrust<=100)\r
+                       if(identity!="" && messagetrust>=-1 && messagetrust<=100 && trustlisttrust>=-1 && trustlisttrust<=100)\r
                        {\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