version 0.3.27
[fms.git] / src / freenet / identityrequester.cpp
index 9e055e0..0738698 100644 (file)
@@ -54,10 +54,13 @@ const bool IdentityRequester::HandleAllData(FCPMessage &message)
 \r
        // receive the file\r
        data.resize(datalength);\r
-       m_fcp->ReceiveRaw(&data[0],datalength);\r
+       if(data.size()>0)\r
+       {\r
+               m_fcp->ReceiveRaw(&data[0],datalength);\r
+       }\r
 \r
        // parse file into xml and update the database\r
-       if(xml.ParseXML(std::string(data.begin(),data.end()))==true)\r
+       if(data.size()>0 && xml.ParseXML(std::string(data.begin(),data.end()))==true)\r
        {\r
 \r
                st=m_db->Prepare("UPDATE tblIdentity SET Name=?, SingleUse=?, LastSeen=?, PublishTrustList=?, PublishBoardList=?, FreesiteEdition=? WHERE IdentityID=?");\r
@@ -111,7 +114,7 @@ const bool IdentityRequester::HandleAllData(FCPMessage &message)
                st.Step();\r
                st.Finalize();\r
 \r
-               m_log->debug("IdentityRequester::HandleAllData parsed Identity XML file : "+message["Identifier"]);\r
+               m_log->debug(m_fcpuniquename+"::HandleAllData parsed Identity XML file : "+message["Identifier"]);\r
        }\r
        else\r
        {\r
@@ -123,7 +126,7 @@ const bool IdentityRequester::HandleAllData(FCPMessage &message)
                st.Step();\r
                st.Finalize();\r
 \r
-               m_log->error("IdentityRequester::HandleAllData error parsing Identity XML file : "+message["Identifier"]);\r
+               m_log->error(m_fcpuniquename+"::HandleAllData error parsing Identity XML file : "+message["Identifier"]);\r
        }\r
 \r
        // remove this identityid from request list\r
@@ -154,7 +157,7 @@ const bool IdentityRequester::HandleGetFailed(FCPMessage &message)
                st.Step();\r
                st.Finalize();\r
 \r
-               m_log->error("IdentityRequester::HandleGetFailed fatal error requesting "+message["Identifier"]);\r
+               m_log->error(m_fcpuniquename+"::HandleGetFailed fatal error requesting "+message["Identifier"]);\r
        }\r
 \r
        // remove this identityid from request list\r
@@ -166,8 +169,12 @@ const bool IdentityRequester::HandleGetFailed(FCPMessage &message)
 \r
 void IdentityRequester::Initialize()\r
 {\r
-       m_fcpuniquename="IdentityRequester";\r
+       m_fcpuniquename="KnownIdentityRequester";\r
        Option::Instance()->GetInt("MaxIdentityRequests",m_maxrequests);\r
+\r
+       // known identities get 4/5 + any remaining if not evenly divisible - unknown identities get 1/5 of the max requests option\r
+       m_maxrequests=((m_maxrequests*4)/5)+(m_maxrequests%5);\r
+\r
        if(m_maxrequests<1)\r
        {\r
                m_maxrequests=1;\r
@@ -187,7 +194,7 @@ void IdentityRequester::PopulateIDList()
        date.assign(date.year(),date.month(),date.day(),0,0,0);\r
 \r
        // select identities we want to query (haven't seen yet today) - sort by their trust level (descending) with secondary sort on how long ago we saw them (ascending)\r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND (LastSeen IS NULL OR LastSeen<'"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S")+"') ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen IS NOT NULL AND LastSeen<'"+Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S")+"' ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
        st.Step();\r
 \r
        m_ids.clear();\r