X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fnntp%2Fextensiontrust.cpp;h=8a50bebc348217fed230a61b41c74fc1f40a9239;hp=6e49a930ea630f5cc594489e27fefd33e822577c;hb=1230cc420c955e75051d011d964bc68f061ba08c;hpb=6836fbb5db8464f56e682989996b2210b14231d0 diff --git a/src/nntp/extensiontrust.cpp b/src/nntp/extensiontrust.cpp index 6e49a93..8a50beb 100644 --- a/src/nntp/extensiontrust.cpp +++ b/src/nntp/extensiontrust.cpp @@ -35,8 +35,7 @@ const int TrustExtension::GetIdentityID(const std::string &nntpname) if(keyparts.size()>1) { - publickey=StringFunctions::Replace(StringFunctions::Replace(keyparts[1],"~",""),"-",""); - if(nameparts[0]+"@"+publickey==nntpname) + if(nameparts[0]+"@"+keyparts[1]==nntpname) { st.ResultInt(0,id); return id; @@ -88,6 +87,80 @@ const bool TrustExtension::GetMessageTrust(const std::string &nntpname, int &tru } } +const bool TrustExtension::GetPeerMessageTrust(const std::string &nntpname, int &trust) +{ + if(m_localidentityid>=0) + { + int id=GetIdentityID(nntpname); + if(id>=0) + { + SQLite3DB::Statement st=m_db->Prepare("SELECT PeerMessageTrust FROM tblIdentity WHERE IdentityID=?;"); + st.Bind(0,id); + st.Step(); + + if(st.RowReturned()) + { + int tr=-1; + if(st.ResultNull(0)==false) + { + st.ResultInt(0,tr); + } + trust=tr; + } + else + { + trust=-1; + } + return true; + } + else + { + return false; + } + } + else + { + return false; + } +} + +const bool TrustExtension::GetPeerTrustListTrust(const std::string &nntpname, int &trust) +{ + if(m_localidentityid>=0) + { + int id=GetIdentityID(nntpname); + if(id>=0) + { + SQLite3DB::Statement st=m_db->Prepare("SELECT PeerTrustListTrust FROM tblIdentity WHERE IdentityID=?;"); + st.Bind(0,id); + st.Step(); + + if(st.RowReturned()) + { + int tr=-1; + if(st.ResultNull(0)==false) + { + st.ResultInt(0,tr); + } + trust=tr; + } + else + { + trust=-1; + } + return true; + } + else + { + return false; + } + } + else + { + return false; + } +} + const bool TrustExtension::GetTrustList(std::map > &trustlist) { if(m_localidentityid>=0) @@ -118,8 +191,7 @@ const bool TrustExtension::GetTrustList(std::map StringFunctions::SplitMultiple(publickey,"@,",keyparts); if(keyparts.size()>1) { - publickey=StringFunctions::Replace(StringFunctions::Replace(keyparts[1],"~",""),"-",""); - nntpname=name+"@"+publickey; + nntpname=name+"@"+keyparts[1]; } trustlist[nntpname]=std::pair(messagetrust,trustlisttrust);