|
|
@ -1051,7 +1051,7 @@ bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock |
|
|
|
CBlockHeader header; |
|
|
|
CBlockHeader header; |
|
|
|
try { |
|
|
|
try { |
|
|
|
file >> header; |
|
|
|
file >> header; |
|
|
|
fseek(file, postx.nTxOffset, SEEK_CUR); |
|
|
|
fseek(file.Get(), postx.nTxOffset, SEEK_CUR); |
|
|
|
file >> txOut; |
|
|
|
file >> txOut; |
|
|
|
} catch (std::exception &e) { |
|
|
|
} catch (std::exception &e) { |
|
|
|
return error("%s : Deserialize or I/O error - %s", __func__, e.what()); |
|
|
|
return error("%s : Deserialize or I/O error - %s", __func__, e.what()); |
|
|
@ -1114,16 +1114,16 @@ bool WriteBlockToDisk(CBlock& block, CDiskBlockPos& pos) |
|
|
|
fileout << FLATDATA(Params().MessageStart()) << nSize; |
|
|
|
fileout << FLATDATA(Params().MessageStart()) << nSize; |
|
|
|
|
|
|
|
|
|
|
|
// Write block
|
|
|
|
// Write block
|
|
|
|
long fileOutPos = ftell(fileout); |
|
|
|
long fileOutPos = ftell(fileout.Get()); |
|
|
|
if (fileOutPos < 0) |
|
|
|
if (fileOutPos < 0) |
|
|
|
return error("WriteBlockToDisk : ftell failed"); |
|
|
|
return error("WriteBlockToDisk : ftell failed"); |
|
|
|
pos.nPos = (unsigned int)fileOutPos; |
|
|
|
pos.nPos = (unsigned int)fileOutPos; |
|
|
|
fileout << block; |
|
|
|
fileout << block; |
|
|
|
|
|
|
|
|
|
|
|
// Flush stdio buffers and commit to disk before returning
|
|
|
|
// Flush stdio buffers and commit to disk before returning
|
|
|
|
fflush(fileout); |
|
|
|
fflush(fileout.Get()); |
|
|
|
if (!IsInitialBlockDownload()) |
|
|
|
if (!IsInitialBlockDownload()) |
|
|
|
FileCommit(fileout); |
|
|
|
FileCommit(fileout.Get()); |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
@ -2843,7 +2843,7 @@ bool static LoadBlockIndexDB() |
|
|
|
for (std::set<int>::iterator it = setBlkDataFiles.begin(); it != setBlkDataFiles.end(); it++) |
|
|
|
for (std::set<int>::iterator it = setBlkDataFiles.begin(); it != setBlkDataFiles.end(); it++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
CDiskBlockPos pos(*it, 0); |
|
|
|
CDiskBlockPos pos(*it, 0); |
|
|
|
if (!CAutoFile(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION)) { |
|
|
|
if (CAutoFile(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION).IsNull()) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -4556,7 +4556,7 @@ bool CBlockUndo::WriteToDisk(CDiskBlockPos &pos, const uint256 &hashBlock) |
|
|
|
fileout << FLATDATA(Params().MessageStart()) << nSize; |
|
|
|
fileout << FLATDATA(Params().MessageStart()) << nSize; |
|
|
|
|
|
|
|
|
|
|
|
// Write undo data
|
|
|
|
// Write undo data
|
|
|
|
long fileOutPos = ftell(fileout); |
|
|
|
long fileOutPos = ftell(fileout.Get()); |
|
|
|
if (fileOutPos < 0) |
|
|
|
if (fileOutPos < 0) |
|
|
|
return error("CBlockUndo::WriteToDisk : ftell failed"); |
|
|
|
return error("CBlockUndo::WriteToDisk : ftell failed"); |
|
|
|
pos.nPos = (unsigned int)fileOutPos; |
|
|
|
pos.nPos = (unsigned int)fileOutPos; |
|
|
@ -4569,9 +4569,9 @@ bool CBlockUndo::WriteToDisk(CDiskBlockPos &pos, const uint256 &hashBlock) |
|
|
|
fileout << hasher.GetHash(); |
|
|
|
fileout << hasher.GetHash(); |
|
|
|
|
|
|
|
|
|
|
|
// Flush stdio buffers and commit to disk before returning
|
|
|
|
// Flush stdio buffers and commit to disk before returning
|
|
|
|
fflush(fileout); |
|
|
|
fflush(fileout.Get()); |
|
|
|
if (!IsInitialBlockDownload()) |
|
|
|
if (!IsInitialBlockDownload()) |
|
|
|
FileCommit(fileout); |
|
|
|
FileCommit(fileout.Get()); |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|