X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Fmessagerequester.cpp;h=fefe8988948a14fedc717be214b6247c102c3b12;hb=9ae3b1434e51788e6feb72e1415ec800d05c535a;hp=043d2bfd4a4336c1bf60c3d7a1c751929cfedb2d;hpb=ed0732b2550c23c05fc9faf925620e87ee6dee12;p=fms.git diff --git a/src/freenet/messagerequester.cpp b/src/freenet/messagerequester.cpp index 043d2bf..fefe898 100644 --- a/src/freenet/messagerequester.cpp +++ b/src/freenet/messagerequester.cpp @@ -11,6 +11,8 @@ #include #endif +std::string MessageRequester::m_validuuidchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~@_-"; + MessageRequester::MessageRequester(SQLite3DB::DB *db):IIndexRequester(db) { Initialize(); @@ -172,7 +174,7 @@ const bool MessageRequester::HandleAllData(FCPv2::Message &message) StringFunctions::SplitMultiple(publickey,"@,",keyparts); StringFunctions::SplitMultiple(xml.GetMessageID(),"@",uuidparts); - if(uuidparts.size()>1 && keyparts.size()>1) + if(uuidparts.size()>1 && keyparts.size()>1 && xml.GetMessageID().find_first_not_of(m_validuuidchars)==std::string::npos) { keypart=StringFunctions::Replace(StringFunctions::Replace(keyparts[1],"-",""),"~",""); if(keypart!=uuidparts[1]) @@ -226,7 +228,7 @@ const bool MessageRequester::HandleAllData(FCPv2::Message &message) m_db->Execute("BEGIN;"); - st=m_db->Prepare("INSERT INTO tblMessage(IdentityID,FromName,MessageDate,MessageTime,Subject,MessageUUID,ReplyBoardID,Body,MessageIndex) VALUES(?,?,?,?,?,?,?,?,?);"); + st=m_db->Prepare("INSERT INTO tblMessage(IdentityID,FromName,MessageDate,MessageTime,Subject,MessageUUID,ReplyBoardID,Body,MessageIndex,InsertDate) VALUES(?,?,?,?,?,?,?,?,?,?);"); st.Bind(0,identityid); st.Bind(1,GetIdentityName(identityid)); st.Bind(2,xml.GetDate()); @@ -236,8 +238,9 @@ const bool MessageRequester::HandleAllData(FCPv2::Message &message) st.Bind(6,GetBoardID(xml.GetReplyBoard(),GetIdentityName(identityid))); st.Bind(7,nntpbody); st.Bind(8,index); + st.Bind(9,idparts[3]); inserted=st.Step(true); - int messageid=st.GetLastInsertRowID(); + long messageid=st.GetLastInsertRowID(); if(inserted==true) {