SecondsSincePayment (fix buffer overflow / change logic / move impl to cpp)

This commit is contained in:
UdjinM6 2015-06-17 23:00:02 +03:00
parent df77f56e11
commit 795ee119ec
2 changed files with 14 additions and 13 deletions

View File

@ -245,6 +245,19 @@ void CMasternode::Check()
activeState = MASTERNODE_ENABLED; // OK
}
int64_t CMasternode::SecondsSincePayment() {
int64_t sec = (GetAdjustedTime() - nLastPaid);
int64_t month = 60*60*24*30;
if(sec < month) return sec; //if it's less than 30 days, give seconds
CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION);
ss << vin;
ss << sigTime;
uint256 hash = ss.GetHash();
// return some deterministic value for unknown/unpaid but force it to be more than 30 days old
return month + hash.GetCompact(false);
}
CMasternodeBroadcast::CMasternodeBroadcast()
{

View File

@ -163,19 +163,7 @@ public:
READWRITE(nVotedTimes);
}
int64_t SecondsSincePayment()
{
int64_t sec = (GetAdjustedTime() - nLastPaid);
if(sec < 60*60*24*30) return sec; //if it's less than 30 days, give seconds
CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION);
ss << vin;
ss << sigTime;
uint256 hash = ss.GetHash();
memcpy(&sec, &hash, 64);
return sec;
}
int64_t SecondsSincePayment();
void UpdateFromNewBroadcast(CMasternodeBroadcast& mnb);