rpc: make fill_pow restricted

It's slow work, so let's not expose it
This commit is contained in:
moneromooo-monero 2019-03-01 16:14:51 +00:00
parent 5bbbe3902b
commit 3907588bf6
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
1 changed files with 10 additions and 5 deletions

View File

@ -1445,7 +1445,8 @@ namespace cryptonote
error_resp.message = "Internal error: can't get last block."; error_resp.message = "Internal error: can't get last block.";
return false; return false;
} }
bool response_filled = fill_block_header_response(last_block, false, last_block_height, last_block_hash, res.block_header, req.fill_pow_hash); const bool restricted = m_restricted && ctx;
bool response_filled = fill_block_header_response(last_block, false, last_block_height, last_block_hash, res.block_header, req.fill_pow_hash && !restricted);
if (!response_filled) if (!response_filled)
{ {
error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR;
@ -1487,7 +1488,8 @@ namespace cryptonote
return false; return false;
} }
uint64_t block_height = boost::get<txin_gen>(blk.miner_tx.vin.front()).height; uint64_t block_height = boost::get<txin_gen>(blk.miner_tx.vin.front()).height;
bool response_filled = fill_block_header_response(blk, orphan, block_height, block_hash, res.block_header, req.fill_pow_hash); const bool restricted = m_restricted && ctx;
bool response_filled = fill_block_header_response(blk, orphan, block_height, block_hash, res.block_header, req.fill_pow_hash && !restricted);
if (!response_filled) if (!response_filled)
{ {
error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR;
@ -1537,7 +1539,8 @@ namespace cryptonote
return false; return false;
} }
res.headers.push_back(block_header_response()); res.headers.push_back(block_header_response());
bool response_filled = fill_block_header_response(blk, false, block_height, block_hash, res.headers.back(), req.fill_pow_hash); const bool restricted = m_restricted && ctx;
bool response_filled = fill_block_header_response(blk, false, block_height, block_hash, res.headers.back(), req.fill_pow_hash && !restricted);
if (!response_filled) if (!response_filled)
{ {
error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR;
@ -1571,7 +1574,8 @@ namespace cryptonote
error_resp.message = "Internal error: can't get block by height. Height = " + std::to_string(req.height) + '.'; error_resp.message = "Internal error: can't get block by height. Height = " + std::to_string(req.height) + '.';
return false; return false;
} }
bool response_filled = fill_block_header_response(blk, false, req.height, block_hash, res.block_header, req.fill_pow_hash); const bool restricted = m_restricted && ctx;
bool response_filled = fill_block_header_response(blk, false, req.height, block_hash, res.block_header, req.fill_pow_hash && !restricted);
if (!response_filled) if (!response_filled)
{ {
error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR;
@ -1626,7 +1630,8 @@ namespace cryptonote
return false; return false;
} }
uint64_t block_height = boost::get<txin_gen>(blk.miner_tx.vin.front()).height; uint64_t block_height = boost::get<txin_gen>(blk.miner_tx.vin.front()).height;
bool response_filled = fill_block_header_response(blk, orphan, block_height, block_hash, res.block_header, req.fill_pow_hash); const bool restricted = m_restricted && ctx;
bool response_filled = fill_block_header_response(blk, orphan, block_height, block_hash, res.block_header, req.fill_pow_hash && !restricted);
if (!response_filled) if (!response_filled)
{ {
error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR;