2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Check stream status after file is opened.
	* src/DefaultBtProgressInfoFile.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-07-22 12:51:51 +00:00
parent cec451951d
commit 0d101d47c9
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Check stream status after file is opened.
* src/DefaultBtProgressInfoFile.cc
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten stream error handling

View File

@ -108,6 +108,10 @@ void DefaultBtProgressInfoFile::save()
std::string filenameTemp = _filename+"__temp";
{
std::ofstream o(filenameTemp.c_str(), std::ios::out|std::ios::binary);
if(!o) {
throw DL_ABORT_EX(StringFormat(EX_SEGMENT_FILE_WRITE,
_filename.c_str(), strerror(errno)).str());
}
bool torrentDownload = isTorrentDownload();
// file version: 16 bits
// values: '1'
@ -212,7 +216,10 @@ void DefaultBtProgressInfoFile::load()
{
_logger->info(MSG_LOADING_SEGMENT_FILE, _filename.c_str());
std::ifstream in(_filename.c_str(), std::ios::in|std::ios::binary);
if(!in) { \
throw DL_ABORT_EX(StringFormat(EX_SEGMENT_FILE_READ, \
_filename.c_str(), strerror(errno)).str());
}
unsigned char versionBuf[2];
in.read((char*)versionBuf, sizeof(versionBuf));
CHECK_STREAM(in, sizeof(versionBuf));