X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Fintroductionpuzzleinserter.cpp;h=000d973fd49b0f5754659a921402b8dbda7d5c14;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=60f7bb66c8f9ca9c97f1b99a1a0b9ff4cf2651d2;hpb=b7f3b3e6ae9dc527f02b5c06e2eeae0e9cac3ad8;p=fms.git diff --git a/src/freenet/introductionpuzzleinserter.cpp b/src/freenet/introductionpuzzleinserter.cpp index 60f7bb6..000d973 100644 --- a/src/freenet/introductionpuzzleinserter.cpp +++ b/src/freenet/introductionpuzzleinserter.cpp @@ -17,12 +17,12 @@ #include #endif -IntroductionPuzzleInserter::IntroductionPuzzleInserter():IIndexInserter() +IntroductionPuzzleInserter::IntroductionPuzzleInserter(SQLite3DB::DB *db):IIndexInserter(db) { Initialize(); } -IntroductionPuzzleInserter::IntroductionPuzzleInserter(FCPv2 *fcp):IIndexInserter(fcp) +IntroductionPuzzleInserter::IntroductionPuzzleInserter(SQLite3DB::DB *db, FCPv2::Connection *fcp):IIndexInserter(db,fcp) { Initialize(); } @@ -87,8 +87,7 @@ void IntroductionPuzzleInserter::GenerateCaptcha(std::string &encodeddata, std:: } m_log->trace("IntroductionPuzzleInserter::GenerateCaptcha using alternate captcha generator"); #else - SimpleCaptcha captcha; - cap=&captcha; + cap=new SimpleCaptcha(); #endif std::vector puzzle; std::vector puzzlesolution; @@ -107,7 +106,7 @@ void IntroductionPuzzleInserter::GenerateCaptcha(std::string &encodeddata, std:: } -const bool IntroductionPuzzleInserter::HandlePutFailed(FCPMessage &message) +const bool IntroductionPuzzleInserter::HandlePutFailed(FCPv2::Message &message) { SQLite3DB::Statement st; std::vector idparts; @@ -133,7 +132,7 @@ const bool IntroductionPuzzleInserter::HandlePutFailed(FCPMessage &message) return true; } -const bool IntroductionPuzzleInserter::HandlePutSuccessful(FCPMessage &message) +const bool IntroductionPuzzleInserter::HandlePutSuccessful(FCPv2::Message &message) { Poco::DateTime now; SQLite3DB::Statement st; @@ -179,18 +178,18 @@ void IntroductionPuzzleInserter::Initialize() const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid) { Poco::DateTime now; - std::string idstring; + std::string idstring=""; long index=0; - std::string indexstr; + std::string indexstr=""; Poco::UUIDGenerator uuidgen; Poco::UUID uuid; - std::string messagebase; + std::string messagebase=""; IntroductionPuzzleXML xml; - std::string encodedpuzzle; - std::string solutionstring; - FCPMessage message; - std::string xmldata; - std::string xmldatasizestr; + std::string encodedpuzzle=""; + std::string solutionstring=""; + FCPv2::Message message; + std::string xmldata=""; + std::string xmldatasizestr=""; std::string privatekey=""; std::string publickey=""; std::string keypart=""; @@ -225,9 +224,15 @@ const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid) } } - Option::Instance()->Get("MessageBase",messagebase); + Option option(m_db); + option.Get("MessageBase",messagebase); GenerateCaptcha(encodedpuzzle,solutionstring); + if(encodedpuzzle.size()==0) + { + m_log->fatal("IntroductionPuzzleInserter::StartInsert could not create introduction puzzle"); + return false; + } try { @@ -253,11 +258,11 @@ const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid) message["Identifier"]=m_fcpuniquename+"|"+idstring+"|"+indexstr+"|"+xml.GetUUID()+"|"+message["URI"]; message["UploadFrom"]="direct"; message["DataLength"]=xmldatasizestr; - m_fcp->SendMessage(message); - m_fcp->SendRaw(xmldata.c_str(),xmldata.size()); + m_fcp->Send(message); + m_fcp->Send(std::vector(xmldata.begin(),xmldata.end())); // insert to USK - message.Reset(); + message.Clear(); message.SetName("ClientPutComplexDir"); message["URI"]="USK"+privatekey.substr(3)+messagebase+"|"+Poco::DateTimeFormatter::format(now,"%Y.%m.%d")+"|IntroductionPuzzle/0/"; message["Identifier"]=m_fcpuniquename+"USK|"+message["URI"]; @@ -265,8 +270,8 @@ const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid) message["Files.0.Name"]="IntroductionPuzzle.xml"; message["Files.0.UplaodFrom"]="direct"; message["Files.0.DataLength"]=xmldatasizestr; - m_fcp->SendMessage(message); - m_fcp->SendRaw(xmldata.c_str(),xmldata.size()); + m_fcp->Send(message); + m_fcp->Send(std::vector(xmldata.begin(),xmldata.end())); m_db->Execute("INSERT INTO tblIntroductionPuzzleInserts(UUID,Type,MimeType,LocalIdentityID,PuzzleData,PuzzleSolution) VALUES('"+xml.GetUUID()+"','captcha','image/bmp',"+idstring+",'"+encodedpuzzle+"','"+solutionstring+"');");