projects
/
fms.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
version 0.3.20
[fms.git]
/
src
/
freenet
/
introductionpuzzleinserter.cpp
diff --git
a/src/freenet/introductionpuzzleinserter.cpp
b/src/freenet/introductionpuzzleinserter.cpp
index
ba0ffab
..
defa0cb
100644
(file)
--- a/
src/freenet/introductionpuzzleinserter.cpp
+++ b/
src/freenet/introductionpuzzleinserter.cpp
@@
-5,6
+5,7
@@
#include "../../include/freenet/captcha/simplecaptcha.h"
\r
#ifdef ALTERNATE_CAPTCHA
\r
#include "../../include/freenet/captcha/alternatecaptcha1.h"
\r
#include "../../include/freenet/captcha/simplecaptcha.h"
\r
#ifdef ALTERNATE_CAPTCHA
\r
#include "../../include/freenet/captcha/alternatecaptcha1.h"
\r
+#include "../../include/freenet/captcha/alternatecaptcha2.h"
\r
#endif
\r
#include "../../include/base64.h"
\r
\r
#endif
\r
#include "../../include/base64.h"
\r
\r
@@
-58,7
+59,6
@@
void IntroductionPuzzleInserter::CheckForNeededInsert()
// make sure we are on the next day or the appropriate amount of time has elapsed since the last insert
\r
if(m_lastinserted.find(rs.GetInt(0))==m_lastinserted.end() || m_lastinserted[rs.GetInt(0)]<=lastinsert || m_lastinserted[rs.GetInt(0)].day()!=now.day())
\r
{
\r
// make sure we are on the next day or the appropriate amount of time has elapsed since the last insert
\r
if(m_lastinserted.find(rs.GetInt(0))==m_lastinserted.end() || m_lastinserted[rs.GetInt(0)]<=lastinsert || m_lastinserted[rs.GetInt(0)].day()!=now.day())
\r
{
\r
- StartInsert(rs.GetInt(0));
\r
m_lastinserted[rs.GetInt(0)]=now;
\r
}
\r
else
\r
m_lastinserted[rs.GetInt(0)]=now;
\r
}
\r
else
\r
@@
-74,18
+74,26
@@
void IntroductionPuzzleInserter::CheckForNeededInsert()
\r
void IntroductionPuzzleInserter::GenerateCaptcha(std::string &encodeddata, std::string &solution)
\r
{
\r
\r
void IntroductionPuzzleInserter::GenerateCaptcha(std::string &encodeddata, std::string &solution)
\r
{
\r
+ ICaptcha *cap=0;
\r
#ifdef ALTERNATE_CAPTCHA
\r
#ifdef ALTERNATE_CAPTCHA
\r
- AlternateCaptcha1 captcha;
\r
+ if(rand()%2==0)
\r
+ {
\r
+ cap=new AlternateCaptcha1();
\r
+ }
\r
+ else
\r
+ {
\r
+ cap=new AlternateCaptcha2();
\r
+ }
\r
m_log->trace("IntroductionPuzzleInserter::GenerateCaptcha using alternate captcha generator");
\r
#else
\r
m_log->trace("IntroductionPuzzleInserter::GenerateCaptcha using alternate captcha generator");
\r
#else
\r
-
SimpleCaptcha captcha
;
\r
+
cap=new SimpleCaptcha()
;
\r
#endif
\r
std::vector<unsigned char> puzzle;
\r
std::vector<unsigned char> puzzlesolution;
\r
\r
#endif
\r
std::vector<unsigned char> puzzle;
\r
std::vector<unsigned char> puzzlesolution;
\r
\r
- cap
tcha.
Generate();
\r
- cap
tcha.
GetPuzzle(puzzle);
\r
- cap
tcha.
GetSolution(puzzlesolution);
\r
+ cap
->
Generate();
\r
+ cap
->
GetPuzzle(puzzle);
\r
+ cap
->
GetSolution(puzzlesolution);
\r
\r
encodeddata.clear();
\r
solution.clear();
\r
\r
encodeddata.clear();
\r
solution.clear();
\r
@@
-93,6
+101,8
@@
void IntroductionPuzzleInserter::GenerateCaptcha(std::string &encodeddata, std::
Base64::Encode(puzzle,encodeddata);
\r
solution.insert(solution.begin(),puzzlesolution.begin(),puzzlesolution.end());
\r
\r
Base64::Encode(puzzle,encodeddata);
\r
solution.insert(solution.begin(),puzzlesolution.begin(),puzzlesolution.end());
\r
\r
+ delete cap;
\r
+
\r
}
\r
\r
const bool IntroductionPuzzleInserter::HandlePutFailed(FCPMessage &message)
\r
}
\r
\r
const bool IntroductionPuzzleInserter::HandlePutFailed(FCPMessage &message)
\r
@@
-167,18
+177,18
@@
void IntroductionPuzzleInserter::Initialize()
const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid)
\r
{
\r
Poco::DateTime now;
\r
const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid)
\r
{
\r
Poco::DateTime now;
\r
- std::string idstring;
\r
+ std::string idstring
=""
;
\r
long index=0;
\r
long index=0;
\r
- std::string indexstr;
\r
+ std::string indexstr
=""
;
\r
Poco::UUIDGenerator uuidgen;
\r
Poco::UUID uuid;
\r
Poco::UUIDGenerator uuidgen;
\r
Poco::UUID uuid;
\r
- std::string messagebase;
\r
+ std::string messagebase
=""
;
\r
IntroductionPuzzleXML xml;
\r
IntroductionPuzzleXML xml;
\r
- std::string encodedpuzzle;
\r
- std::string solutionstring;
\r
+ std::string encodedpuzzle
=""
;
\r
+ std::string solutionstring
=""
;
\r
FCPMessage message;
\r
FCPMessage message;
\r
- std::string xmldata;
\r
- std::string xmldatasizestr;
\r
+ std::string xmldata
=""
;
\r
+ std::string xmldatasizestr
=""
;
\r
std::string privatekey="";
\r
std::string publickey="";
\r
std::string keypart="";
\r
std::string privatekey="";
\r
std::string publickey="";
\r
std::string keypart="";
\r
@@
-216,6
+226,11
@@
const bool IntroductionPuzzleInserter::StartInsert(const long &localidentityid)
Option::Instance()->Get("MessageBase",messagebase);
\r
\r
GenerateCaptcha(encodedpuzzle,solutionstring);
\r
Option::Instance()->Get("MessageBase",messagebase);
\r
\r
GenerateCaptcha(encodedpuzzle,solutionstring);
\r
+ if(encodedpuzzle.size()==0)
\r
+ {
\r
+ m_log->fatal("IntroductionPuzzleInserter::StartInsert could not create introduction puzzle");
\r
+ return false;
\r
+ }
\r
\r
try
\r
{
\r
\r
try
\r
{
\r