rpc: fix orphan_status when getting blocks

It was always set to false, even for orphan blocks
This commit is contained in:
moneromooo-monero 2017-01-22 12:20:55 +00:00
parent 71ac698b78
commit b70ab128fc
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
5 changed files with 16 additions and 9 deletions

View file

@ -636,7 +636,7 @@ crypto::hash Blockchain::get_block_id_by_height(uint64_t height) const
return null_hash;
}
//------------------------------------------------------------------
bool Blockchain::get_block_by_hash(const crypto::hash &h, block &blk) const
bool Blockchain::get_block_by_hash(const crypto::hash &h, block &blk, bool *orphan) const
{
LOG_PRINT_L3("Blockchain::" << __func__);
CRITICAL_REGION_LOCAL(m_blockchain_lock);
@ -645,6 +645,8 @@ bool Blockchain::get_block_by_hash(const crypto::hash &h, block &blk) const
try
{
blk = m_db->get_block(h);
if (orphan)
*orphan = false;
return true;
}
// try to find block in alternative chain
@ -654,6 +656,8 @@ bool Blockchain::get_block_by_hash(const crypto::hash &h, block &blk) const
if (m_alternative_chains.end() != it_alt)
{
blk = it_alt->second.bl;
if (orphan)
*orphan = true;
return true;
}
}

View file

@ -197,10 +197,11 @@ namespace cryptonote
*
* @param h the hash to look for
* @param blk return-by-reference variable to put result block in
* @param orphan if non-NULL, will be set to true if not in the main chain, false otherwise
*
* @return true if the block was found, else false
*/
bool get_block_by_hash(const crypto::hash &h, block &blk) const;
bool get_block_by_hash(const crypto::hash &h, block &blk, bool *orphan = NULL) const;
/**
* @brief get all block hashes (main chain, alt chains, and invalid blocks)

View file

@ -977,9 +977,9 @@ namespace cryptonote
return m_blockchain_storage.get_block_id_by_height(height);
}
//-----------------------------------------------------------------------------------------------
bool core::get_block_by_hash(const crypto::hash &h, block &blk) const
bool core::get_block_by_hash(const crypto::hash &h, block &blk, bool *orphan) const
{
return m_blockchain_storage.get_block_by_hash(h, blk);
return m_blockchain_storage.get_block_by_hash(h, blk, orphan);
}
//-----------------------------------------------------------------------------------------------
std::string core::print_pool(bool short_format) const

View file

@ -330,7 +330,7 @@ namespace cryptonote
*
* @note see Blockchain::get_block_by_hash
*/
bool get_block_by_hash(const crypto::hash &h, block &blk) const;
bool get_block_by_hash(const crypto::hash &h, block &blk, bool *orphan = NULL) const;
/**
* @copydoc Blockchain::get_alternative_blocks