mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-03 09:25:51 +00:00
Merge branch 'master' of github.com:jedmccaleb/NewCoin
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
#include "Log.h"
|
||||
SETUP_LOG();
|
||||
|
||||
// Logic to handle incoming HTTP reqests
|
||||
|
||||
void HTTPRequest::reset()
|
||||
{
|
||||
vHeaders.clear();
|
||||
|
||||
@@ -16,7 +16,7 @@ enum HTTPRequestAction
|
||||
};
|
||||
|
||||
class HTTPRequest
|
||||
{ // an HTTP request in progress
|
||||
{ // an HTTP request we are handling from a client
|
||||
protected:
|
||||
|
||||
enum state
|
||||
@@ -58,4 +58,4 @@ public:
|
||||
int getDataSize() { return iDataSize; }
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -954,6 +954,40 @@ int Ledger::getLedgerHashOffset(uint32 desiredLedgerIndex, uint32 currentLedgerI
|
||||
return currentLedgerIndex - desiredLedgerIndex - 1;
|
||||
}
|
||||
|
||||
uint256 Ledger::getLedgerHash(uint32 ledgerIndex)
|
||||
{ // return the hash of the specified ledger, 0 if not available
|
||||
|
||||
// easy cases
|
||||
if (ledgerIndex > mLedgerSeq)
|
||||
return uint256();
|
||||
if (ledgerIndex == mLedgerSeq)
|
||||
return getHash();
|
||||
if (ledgerIndex == (mLedgerSeq - 1))
|
||||
return mParentHash;
|
||||
|
||||
// within 255
|
||||
int offset = getLedgerHashOffset(ledgerIndex, mLedgerSeq);
|
||||
if (offset != -1)
|
||||
{
|
||||
SLE::pointer hashIndex = getSLE(getLedgerHashIndex());
|
||||
if (hashIndex)
|
||||
return hashIndex->getFieldV256(sfHashes).peekValue().at(offset);
|
||||
else
|
||||
assert(false);
|
||||
}
|
||||
|
||||
if ((ledgerIndex & 0xff) != 0)
|
||||
return uint256();
|
||||
|
||||
SLE::pointer hashIndex = getSLE(getLedgerHashIndex(ledgerIndex));
|
||||
if (hashIndex)
|
||||
return hashIndex->getFieldV256(sfHashes).peekValue().at(getLedgerHashOffset(ledgerIndex, mLedgerSeq));
|
||||
else
|
||||
assert(false);
|
||||
|
||||
return uint256();
|
||||
}
|
||||
|
||||
uint256 Ledger::getBookBase(const uint160& uTakerPaysCurrency, const uint160& uTakerPaysIssuerID,
|
||||
const uint160& uTakerGetsCurrency, const uint160& uTakerGetsIssuerID)
|
||||
{
|
||||
@@ -1112,7 +1146,6 @@ void Ledger::updateSkipList()
|
||||
if (!skipList)
|
||||
{
|
||||
skipList = boost::make_shared<SLE>(ltLEDGER_HASHES, hash);
|
||||
skipList->setFieldU32(sfFirstLedgerSequence, prevIndex);
|
||||
}
|
||||
else
|
||||
hashes = skipList->getFieldV256(sfHashes).peekValue();
|
||||
@@ -1135,7 +1168,6 @@ void Ledger::updateSkipList()
|
||||
if (!skipList)
|
||||
{
|
||||
skipList = boost::make_shared<SLE>(ltLEDGER_HASHES, hash);
|
||||
skipList->setFieldU32(sfFirstLedgerSequence, prevIndex);
|
||||
}
|
||||
else
|
||||
hashes = skipList->getFieldV256(sfHashes).peekValue();
|
||||
|
||||
@@ -198,6 +198,7 @@ public:
|
||||
static uint256 getLedgerHashIndex(uint32 desiredLedgerIndex);
|
||||
static int getLedgerHashOffset(uint32 desiredLedgerIndex);
|
||||
static int getLedgerHashOffset(uint32 desiredLedgerIndex, uint32 currentLedgerIndex);
|
||||
uint256 getLedgerHash(uint32 ledgerIndex);
|
||||
|
||||
static uint256 getLedgerFeatureIndex();
|
||||
static uint256 getLedgerFeeIndex();
|
||||
|
||||
@@ -96,7 +96,7 @@ static bool LEFInit()
|
||||
;
|
||||
|
||||
DECLARE_LEF(LedgerHashes, ltLEDGER_HASHES)
|
||||
<< SOElement(sfFirstLedgerSequence, SOE_OPTIONAL)
|
||||
<< SOElement(sfFirstLedgerSequence, SOE_OPTIONAL) // Remove if we do a ledger restart
|
||||
<< SOElement(sfLastLedgerSequence, SOE_OPTIONAL)
|
||||
<< SOElement(sfHashes, SOE_REQUIRED)
|
||||
;
|
||||
|
||||
@@ -540,6 +540,7 @@ bool SHAMap::delItem(const uint256& id)
|
||||
SHAMapItem::pointer item = onlyBelow(node.get());
|
||||
if (item)
|
||||
{
|
||||
returnNode(node, true);
|
||||
eraseChildren(node);
|
||||
#ifdef ST_DEBUG
|
||||
std::cerr << "Making item node " << *node << std::endl;
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
FIELD(BondAmount, UINT32, 23)
|
||||
FIELD(LoadFee, UINT32, 24)
|
||||
FIELD(OfferSequence, UINT32, 25)
|
||||
FIELD(FirstLedgerSequence, UINT32, 26)
|
||||
FIELD(FirstLedgerSequence, UINT32, 26) // Deprecated: do not use
|
||||
FIELD(LastLedgerSequence, UINT32, 27)
|
||||
FIELD(TransactionIndex, UINT32, 28)
|
||||
FIELD(OperationLimit, UINT32, 29)
|
||||
|
||||
Reference in New Issue
Block a user