+void Message::HandleChangeTrust()\r
+{\r
+ if(m_changemessagetrustonreply!=0 && m_inreplyto.size()>0)\r
+ {\r
+ int localidentityid=FindLocalIdentityID(m_fromname);\r
+ if(localidentityid!=-1)\r
+ {\r
+ // make sure we have a record in tblIdentityTrust\r
+ SQLite3DB::Statement ins=m_db->Prepare("INSERT INTO tblIdentityTrust(LocalIdentityID,IdentityID) VALUES(?,?);");\r
+\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT tblIdentity.IdentityID,tblIdentityTrust.LocalMessageTrust FROM tblIdentity INNER JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID LEFT JOIN (SELECT IdentityID,LocalMessageTrust FROM tblIdentityTrust WHERE LocalIdentityID=?) AS 'tblIdentityTrust' ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID WHERE tblMessage.MessageUUID=?;");\r
+ st.Bind(0,localidentityid);\r
+ st.Bind(1,m_inreplyto[0]);\r
+ st.Step();\r
+ if(st.RowReturned())\r
+ {\r
+ int identityid=0;\r
+ int localmessagetrust=0;\r
+\r
+ st.ResultInt(0,identityid);\r
+ if(st.ResultNull(1)==false)\r
+ {\r
+ st.ResultInt(1,localmessagetrust);\r
+ }\r
+ else\r
+ {\r
+ localmessagetrust=m_minlocalmessagetrust;\r
+ }\r
+\r
+ localmessagetrust+=m_changemessagetrustonreply;\r
+ if(localmessagetrust<0)\r
+ {\r
+ localmessagetrust=0;\r
+ }\r
+ if(localmessagetrust>100)\r
+ {\r
+ localmessagetrust=100;\r
+ }\r
+\r
+ ins.Bind(0,localidentityid);\r
+ ins.Bind(1,identityid);\r
+ ins.Step();\r
+\r
+ SQLite3DB::Statement st2=m_db->Prepare("UPDATE tblIdentityTrust SET LocalMessageTrust=? WHERE IdentityID=? AND LocalIdentityID=?;");\r
+ st2.Bind(0,localmessagetrust);\r
+ st2.Bind(1,identityid);\r
+ st2.Bind(2,localidentityid);\r
+ st2.Step();\r
+\r
+ }\r
+ }\r
+ }\r
+}\r
+\r