version 0.3.27
[fms.git] / src / freenet / messagelistrequester.cpp
index 07d052f..d8ed8aa 100644 (file)
@@ -177,7 +177,7 @@ const bool MessageListRequester::HandleAllData(FCPMessage &message)
                        if(CheckDateNotFuture(xml.GetDate(i))==false)\r
                        {\r
                                addmessage=false;\r
-                               m_log->error("MessageListRequester::HandleAllData date for message is in future! "+xml.GetDate(i));\r
+                               m_log->error(m_fcpuniquename+"::HandleAllData date for message is in future! "+xml.GetDate(i));\r
                        }\r
 \r
                        if(addmessage==true && CheckDateWithinMaxDays(xml.GetDate(i))==false)\r
@@ -240,7 +240,7 @@ const bool MessageListRequester::HandleAllData(FCPMessage &message)
                                if(CheckDateNotFuture(xml.GetExternalDate(i))==false)\r
                                {\r
                                        addmessage=false;\r
-                                       m_log->error("MessageListRequester::HandleAllData date for external message is in future! "+xml.GetExternalDate(i));\r
+                                       m_log->error(m_fcpuniquename+"::HandleAllData date for external message is in future! "+xml.GetExternalDate(i));\r
                                }\r
 \r
                                if(addmessage==true && CheckDateWithinMaxDays(xml.GetExternalDate(i))==false)\r
@@ -278,7 +278,7 @@ const bool MessageListRequester::HandleAllData(FCPMessage &message)
                st.Step();\r
                st.Finalize();\r
 \r
-               m_log->debug("MessageListRequester::HandleAllData parsed MessageList XML file : "+message["Identifier"]);\r
+               m_log->debug(m_fcpuniquename+"::HandleAllData parsed MessageList XML file : "+message["Identifier"]);\r
        }\r
        else\r
        {\r
@@ -290,7 +290,7 @@ const bool MessageListRequester::HandleAllData(FCPMessage &message)
                st.Step();\r
                st.Finalize();\r
 \r
-               m_log->error("MessageListRequester::HandleAllData error parsing MessageList XML file : "+message["Identifier"]);\r
+               m_log->error(m_fcpuniquename+"::HandleAllData error parsing MessageList XML file : "+message["Identifier"]);\r
        }\r
 \r
        // remove this identityid from request list\r
@@ -328,7 +328,7 @@ const bool MessageListRequester::HandleGetFailed(FCPMessage &message)
                st.Step();\r
                st.Finalize();\r
 \r
-               m_log->error("MessageListRequester::HandleGetFailed fatal error code="+message["Code"]+" requesting "+message["Identifier"]);\r
+               m_log->error(m_fcpuniquename+"::HandleGetFailed fatal error code="+message["Code"]+" requesting "+message["Identifier"]);\r
        }\r
 \r
        // remove this identityid from request list\r
@@ -339,11 +339,15 @@ const bool MessageListRequester::HandleGetFailed(FCPMessage &message)
 \r
 void MessageListRequester::Initialize()\r
 {\r
-       m_fcpuniquename="MessageListRequester";\r
+       m_fcpuniquename="ActiveMessageListRequester";\r
        std::string tempval="";\r
 \r
        m_maxrequests=0;\r
        Option::Instance()->GetInt("MaxMessageListRequests",m_maxrequests);\r
+\r
+       // active identities get 1/2 of the max requests option + any remaining if not evenly divisible - inactive identities get 1/2\r
+       m_maxrequests=(m_maxrequests/2)+(m_maxrequests%2);\r
+\r
        if(m_maxrequests<1)\r
        {\r
                m_maxrequests=1;\r
@@ -386,6 +390,7 @@ void MessageListRequester::Initialize()
 void MessageListRequester::PopulateIDList()\r
 {\r
        Poco::DateTime date;\r
+       Poco::DateTime yesterday=date-Poco::Timespan(1,0,0,0,0);\r
        int id;\r
 \r
        SQLite3DB::Statement st;\r
@@ -393,11 +398,11 @@ void MessageListRequester::PopulateIDList()
        // select identities we want to query (we've seen them today) - sort by their trust level (descending) with secondary sort on how long ago we saw them (ascending)\r
        if(m_localtrustoverrides==false)\r
        {\r
-               st=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d")+"' AND (LocalMessageTrust IS NULL OR LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust')) AND (PeerMessageTrust IS NULL OR PeerMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinPeerMessageTrust')) ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
+               st=m_db->Prepare("SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN vwIdentityStats ON tblIdentity.IdentityID=vwIdentityStats.IdentityID WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d")+"' AND (vwIdentityStats.LastMessageDate>='"+Poco::DateTimeFormatter::format(yesterday,"%Y-%m-%d")+"') AND (LocalMessageTrust IS NULL OR LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust')) AND (PeerMessageTrust IS NULL OR PeerMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinPeerMessageTrust')) ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
        }\r
        else\r
        {\r
-               st=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d")+"' AND (LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust') OR (LocalMessageTrust IS NULL AND (PeerMessageTrust IS NULL OR PeerMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinPeerMessageTrust')))) ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
+               st=m_db->Prepare("SELECT tblIdentity.IdentityID FROM tblIdentity INNER JOIN vwIdentityStats ON tblIdentity.IdentityID=vwIdentityStats.IdentityID WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d")+"' AND (vwIdentityStats.LastMessageDate>='"+Poco::DateTimeFormatter::format(yesterday,"%Y-%m-%d")+"') AND (LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust') OR (LocalMessageTrust IS NULL AND (PeerMessageTrust IS NULL OR PeerMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinPeerMessageTrust')))) ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
        }\r
        st.Step();\r
 \r