version 0.2.18
[fms.git] / src / nntp / extensiontrust.cpp
index 6e49a93..8a50beb 100644 (file)
@@ -35,8 +35,7 @@ const int TrustExtension::GetIdentityID(const std::string &nntpname)
 \r
                if(keyparts.size()>1)\r
                {\r
-                       publickey=StringFunctions::Replace(StringFunctions::Replace(keyparts[1],"~",""),"-","");\r
-                       if(nameparts[0]+"@"+publickey==nntpname)\r
+                       if(nameparts[0]+"@"+keyparts[1]==nntpname)\r
                        {\r
                                st.ResultInt(0,id);\r
                                return id;\r
@@ -88,6 +87,80 @@ const bool TrustExtension::GetMessageTrust(const std::string &nntpname, int &tru
        }\r
 }\r
 \r
+const bool TrustExtension::GetPeerMessageTrust(const std::string &nntpname, int &trust)\r
+{\r
+       if(m_localidentityid>=0)\r
+       {\r
+               int id=GetIdentityID(nntpname);\r
+               if(id>=0)\r
+               {\r
+                       SQLite3DB::Statement st=m_db->Prepare("SELECT PeerMessageTrust FROM tblIdentity WHERE IdentityID=?;");\r
+                       st.Bind(0,id);\r
+                       st.Step();\r
+\r
+                       if(st.RowReturned())\r
+                       {\r
+                               int tr=-1;\r
+                               if(st.ResultNull(0)==false)\r
+                               {\r
+                                       st.ResultInt(0,tr);\r
+                               }\r
+                               trust=tr;\r
+                       }\r
+                       else\r
+                       {\r
+                               trust=-1;\r
+                       }\r
+                       return true;\r
+               }\r
+               else\r
+               {\r
+                       return false;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               return false;\r
+       }\r
+}\r
+\r
+const bool TrustExtension::GetPeerTrustListTrust(const std::string &nntpname, int &trust)\r
+{\r
+       if(m_localidentityid>=0)\r
+       {\r
+               int id=GetIdentityID(nntpname);\r
+               if(id>=0)\r
+               {\r
+                       SQLite3DB::Statement st=m_db->Prepare("SELECT PeerTrustListTrust FROM tblIdentity WHERE IdentityID=?;");\r
+                       st.Bind(0,id);\r
+                       st.Step();\r
+\r
+                       if(st.RowReturned())\r
+                       {\r
+                               int tr=-1;\r
+                               if(st.ResultNull(0)==false)\r
+                               {\r
+                                       st.ResultInt(0,tr);\r
+                               }\r
+                               trust=tr;\r
+                       }\r
+                       else\r
+                       {\r
+                               trust=-1;\r
+                       }\r
+                       return true;\r
+               }\r
+               else\r
+               {\r
+                       return false;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               return false;\r
+       }\r
+}\r
+\r
 const bool TrustExtension::GetTrustList(std::map<std::string,std::pair<int,int> > &trustlist)\r
 {\r
        if(m_localidentityid>=0)\r
@@ -118,8 +191,7 @@ const bool TrustExtension::GetTrustList(std::map<std::string,std::pair<int,int>
                        StringFunctions::SplitMultiple(publickey,"@,",keyparts);\r
                        if(keyparts.size()>1)\r
                        {\r
-                               publickey=StringFunctions::Replace(StringFunctions::Replace(keyparts[1],"~",""),"-","");\r
-                               nntpname=name+"@"+publickey;\r
+                               nntpname=name+"@"+keyparts[1];\r
                        }\r
 \r
                        trustlist[nntpname]=std::pair<int,int>(messagetrust,trustlisttrust);\r