version 0.2.4
[fms.git] / src / freenet / boardlistrequester.cpp
index 6b52a46..099242d 100644 (file)
@@ -53,7 +53,7 @@ const bool BoardListRequester::HandleAllData(FCPMessage &message)
        {\r
 \r
                SQLite3DB::Statement brd=m_db->Prepare("SELECT BoardID,BoardName,BoardDescription FROM tblBoard WHERE BoardName=?;");\r
-               SQLite3DB::Statement ins=m_db->Prepare("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded) VALUES(?,?,?);");\r
+               SQLite3DB::Statement ins=m_db->Prepare("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,SaveReceivedMessages) VALUES(?,?,?,?);");\r
                SQLite3DB::Statement upd=m_db->Prepare("UPDATE tblBoard SET BoardDescription=? WHERE BoardID=?;");\r
                for(long i=0; i<xml.GetCount(); i++)\r
                {\r
@@ -71,6 +71,7 @@ const bool BoardListRequester::HandleAllData(FCPMessage &message)
                                if(description=="" && xml.GetDescription(i)!="")\r
                                {\r
                                        upd.Bind(0,xml.GetDescription(i));\r
+                                       upd.Bind(1,boardid);\r
                                        upd.Step();\r
                                        upd.Reset();\r
                                }\r
@@ -80,6 +81,14 @@ const bool BoardListRequester::HandleAllData(FCPMessage &message)
                                ins.Bind(0,xml.GetName(i));\r
                                ins.Bind(1,xml.GetDescription(i));\r
                                ins.Bind(2,now.Format("%Y-%m-%d %H:%M:%S"));\r
+                               if(m_savemessagesfromnewboards)\r
+                               {\r
+                                       ins.Bind(3,"true");\r
+                               }\r
+                               else\r
+                               {\r
+                                       ins.Bind(3,"false");\r
+                               }\r
                                ins.Step();\r
                                ins.Reset();\r
                        }\r
@@ -165,6 +174,17 @@ void BoardListRequester::Initialize()
        {\r
                m_log->WriteLog(LogFile::LOGLEVEL_WARNING,"Option MaxBoardListRequests is currently set at "+tempval+".  This value might be incorrectly configured.");\r
        }\r
+\r
+       Option::Instance()->Get("SaveMessagesFromNewBoards",tempval);\r
+       if(tempval=="true")\r
+       {\r
+               m_savemessagesfromnewboards=true;\r
+       }\r
+       else\r
+       {\r
+               m_savemessagesfromnewboards=false;\r
+       }\r
+\r
 }\r
 \r
 void BoardListRequester::PopulateIDList()\r
@@ -173,7 +193,7 @@ void BoardListRequester::PopulateIDList()
        DateTime today;\r
        today.SetToGMTime();\r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID FROM tblIdentity WHERE PublicKey IS NOT NULL AND PublicKey <> '' AND LastSeen>='"+today.Format("%Y-%m-%d")+"' AND LocalMessageTrust>=(SELECT OptionValue FROM tblOption WHERE Option='MinLocalMessageTrust') AND PublishBoardList='true' 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>='"+today.Format("%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')) AND PublishBoardList='true' ORDER BY LocalMessageTrust+LocalTrustListTrust DESC, LastSeen;");\r
        st.Step();\r
 \r
        m_ids.clear();\r