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

Rewritten Signature::save()
	* src/Signature.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-07-22 12:58:49 +00:00
parent 65906c07fe
commit f4a533846d
2 changed files with 17 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten Signature::save()
* src/Signature.cc
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten stream error handling Rewritten stream error handling

View File

@ -64,15 +64,20 @@ bool Signature::save(const std::string& filepath) const
if(File(filepath).exists()) { if(File(filepath).exists()) {
return false; return false;
} }
std::ofstream out(filepath.c_str(), std::ios::binary); std::string tempFilepath = filepath;
try { tempFilepath += "__temp";
out.exceptions(std::ios::failbit); {
std::ofstream out(tempFilepath.c_str(), std::ios::binary);
if(!out) {
return false;
}
out << _body; out << _body;
out.close(); out.flush();
return true; if(!out) {
} catch(const std::ios::failure& exception) { return false;
return false; }
} }
return File(tempFilepath).renameTo(filepath);
} }
} // namespace aria2 } // namespace aria2