X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Fmessagerequester.cpp;h=e298271c76710040b9577dce93b5017ecf04f1d6;hb=8a0a83a78390f22f99d4487cda2569909dfbc28e;hp=ac56c5c388808074ec6c5293d14189950093ffbd;hpb=ee580d19b7920904587e18d72a3465d52eab6204;p=fms.git diff --git a/src/freenet/messagerequester.cpp b/src/freenet/messagerequester.cpp index ac56c5c..e298271 100644 --- a/src/freenet/messagerequester.cpp +++ b/src/freenet/messagerequester.cpp @@ -19,8 +19,10 @@ MessageRequester::MessageRequester(FCPv2 *fcp):IIndexRequester(fcp) const long MessageRequester::GetBoardID(const std::string &boardname) { + std::string lowerboard=boardname; + StringFunctions::LowerCase(lowerboard,lowerboard); SQLite3DB::Statement st=m_db->Prepare("SELECT BoardID FROM tblBoard WHERE BoardName=?;"); - st.Bind(0,boardname); + st.Bind(0,lowerboard); st.Step(); if(st.RowReturned()) @@ -33,9 +35,17 @@ const long MessageRequester::GetBoardID(const std::string &boardname) { DateTime now; now.SetToGMTime(); - st=m_db->Prepare("INSERT INTO tblBoard(BoardName,DateAdded) VALUES(?,?);"); + st=m_db->Prepare("INSERT INTO tblBoard(BoardName,DateAdded,SaveReceivedMessages) VALUES(?,?,?);"); st.Bind(0,boardname); st.Bind(1,now.Format("%Y-%m-%d %H:%M:%S")); + if(m_savemessagesfromnewboards) + { + st.Bind(2,"true"); + } + else + { + st.Bind(2,"false"); + } st.Step(true); return st.GetLastInsertRowID(); } @@ -127,11 +137,15 @@ const bool MessageRequester::HandleAllData(FCPMessage &message) if(boards.size()<=0) { m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"MessageRequester::HandleAllData Message XML did not contain any boards! "+message["Identifier"]); + // remove this identityid from request list + RemoveFromRequestList(idparts[1]); return true; } if(xml.GetReplyBoard()=="") { m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"MessageRequester::HandleAllData Message XML did not contain a reply board! "+message["Identifier"]); + // remove this identityid from request list + RemoveFromRequestList(idparts[1]); return true; } @@ -191,7 +205,7 @@ const bool MessageRequester::HandleAllData(FCPMessage &message) if(validmessage && savetoboardcount>0) { - st=m_db->Prepare("INSERT INTO tblMessage(IdentityID,FromName,MessageDate,MessageTime,Subject,MessageUUID,ReplyBoardID,Body) VALUES(?,?,?,?,?,?,?,?);"); + st=m_db->Prepare("INSERT INTO tblMessage(IdentityID,FromName,MessageDate,MessageTime,Subject,MessageUUID,ReplyBoardID,Body,MessageIndex) VALUES(?,?,?,?,?,?,?,?,?);"); st.Bind(0,identityid); st.Bind(1,GetIdentityName(identityid)); st.Bind(2,xml.GetDate()); @@ -200,6 +214,7 @@ const bool MessageRequester::HandleAllData(FCPMessage &message) st.Bind(5,xml.GetMessageID()); st.Bind(6,GetBoardID(xml.GetReplyBoard())); st.Bind(7,xml.GetBody()); + st.Bind(8,index); inserted=st.Step(true); int messageid=st.GetLastInsertRowID(); @@ -332,6 +347,15 @@ void MessageRequester::Initialize() { m_log->WriteLog(LogFile::LOGLEVEL_WARNING,"Option MaxBoardsPerMessage is currently set at "+tempval+". This value might be incorrectly configured."); } + Option::Instance()->Get("SaveMessagesFromNewBoards",tempval); + if(tempval=="true") + { + m_savemessagesfromnewboards=true; + } + else + { + m_savemessagesfromnewboards=false; + } } void MessageRequester::PopulateIDList()