diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-07-22 12:51:51 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-07-22 12:51:51 +0000 |
| commit | 0d101d47c9beb6020242fd105993a0f023485588 (patch) | |
| tree | 6128ba7cc4577adf2670e7cfad9f0037ac96a1dc /src/DefaultBtProgressInfoFile.cc | |
| parent | cec451951d892c2d953840c9257059462cdf9cc9 (diff) | |
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Check stream status after file is opened.
* src/DefaultBtProgressInfoFile.cc
Diffstat (limited to 'src/DefaultBtProgressInfoFile.cc')
| -rw-r--r-- | src/DefaultBtProgressInfoFile.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/DefaultBtProgressInfoFile.cc b/src/DefaultBtProgressInfoFile.cc index fa571443..ce93ad9f 100644 --- a/src/DefaultBtProgressInfoFile.cc +++ b/src/DefaultBtProgressInfoFile.cc @@ -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)); |
