version 0.3.29
[fms.git] / src / freenet / unknownidentityrequester.cpp
1 #include "../../include/freenet/unknownidentityrequester.h"\r
2 #include "../../include/option.h"\r
3 \r
4 #ifdef XMEM\r
5         #include <xmem.h>\r
6 #endif\r
7 \r
8 UnknownIdentityRequester::UnknownIdentityRequester(SQLite3DB::DB *db):IdentityRequester(db)\r
9 {\r
10         Initialize();\r
11 }\r
12 \r
13 UnknownIdentityRequester::UnknownIdentityRequester(SQLite3DB::DB *db, FCPv2::Connection *fcp):IdentityRequester(db,fcp)\r
14 {\r
15         Initialize();\r
16 }\r
17 \r
18 void UnknownIdentityRequester::Initialize()\r
19 {\r
20         Option option(m_db);\r
21 \r
22         m_fcpuniquename="UnknownIdentityRequester";\r
23         option.GetInt("MaxIdentityRequests",m_maxrequests);\r
24 \r
25         // unknown identities get 1/5 of the max requests option - known identities get 4/5 + any remaining if not evenly divisible\r
26         m_maxrequests=(m_maxrequests/5);\r
27 \r
28         if(m_maxrequests<1)\r
29         {\r
30                 m_maxrequests=1;\r
31                 m_log->error("Option MaxIdentityRequests is currently set at less than 1.  It must be 1 or greater.");\r
32         }\r
33         if(m_maxrequests>100)\r
34         {\r
35                 m_log->warning("Option MaxIdentityRequests is currently set at more than 100.  This value might be incorrectly configured.");\r
36         }\r
37 }\r
38 \r
39 void UnknownIdentityRequester::PopulateIDList()\r
40 {\r
41         int id;\r
42 \r
43         // select identities we want to query (haven't seen at all) - sort by their trust level (descending)\r
44         SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen IS NULL ORDER BY LocalMessageTrust+LocalTrustListTrust DESC;");\r
45         st.Step();\r
46 \r
47         m_ids.clear();\r
48 \r
49         while(st.RowReturned())\r
50         {\r
51                 st.ResultInt(0,id);\r
52                 m_ids[id]=false;\r
53                 st.Step();\r
54         }\r
55 }\r