summaryrefslogtreecommitdiff
path: root/src/DefaultBtProgressInfoFile.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-07-23 13:04:48 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-07-23 13:04:48 +0000
commit380e3f018712d3a65ddc834dbf83e036b436be09 (patch)
treebe34c3320914cb6cd1927e49ee6f463a6562398e /src/DefaultBtProgressInfoFile.cc
parent6574e44f886740273676b6d73ef754385a36197f (diff)
2007-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Merged Ross's win32 patch(manually) In the course of merging, following files are added. * src/strptime.{h,c} * src/libgen.{h,c} * src/inet_aton.{h,c} * src/Platform.{h,cc} * src/localtime_r.{h,c} * src/getaddrinfo.{h,c} I've gethered network related things, and put them to following file: * src/a2netcompat.h Also io related things are put to following file: * src/a2io.h Changed %lld to %s because mingw32 doesn't recognize %lld. * src/message.h (MSG_ALLOCATION_COMPLETED) (EX_TOO_LARGE_FILE) (EX_SIZE_MISMATCH) (EX_FILE_OFFSET_OUT_OF_RANGE) (EX_INVALID_CHUNK_CHECKSUM) (EX_INVALID_RANGE_HEADER) * src/FileAllocationCommand.cc * src/HttpResponse.cc * src/RequestGroup.cc * src/MultiDiskAdaptor.cc * src/OptionHandlerImpl.h * src/HttpResponseCommand.cc * src/FtpNegotiateCommand.cc * src/IteratableChecksumValidator.cc * src/SegmentMan.cc * src/ChunkChecksumValidator.cc Added Randomizer::getRandomNumber(long int) * src/Randomizer.h (getRandomNumber) * src/SimpleRandomizer.h (getRandomNumber) * src/BitfieldMan.cc (getMissingIndexRandomly): Use this new function. * src/Util.cc (randomAlpha): Use this new function.
Diffstat (limited to 'src/DefaultBtProgressInfoFile.cc')
-rw-r--r--src/DefaultBtProgressInfoFile.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/DefaultBtProgressInfoFile.cc b/src/DefaultBtProgressInfoFile.cc
index d8ff303f..a2da4816 100644
--- a/src/DefaultBtProgressInfoFile.cc
+++ b/src/DefaultBtProgressInfoFile.cc
@@ -40,6 +40,7 @@
#include "message.h"
#include "File.h"
#include "Util.h"
+#include "a2io.h"
#include <errno.h>
DefaultBtProgressInfoFile::DefaultBtProgressInfoFile(const BtContextHandle& btContext,
@@ -59,7 +60,7 @@ DefaultBtProgressInfoFile::~DefaultBtProgressInfoFile() {}
void DefaultBtProgressInfoFile::save() {
logger->info(MSG_SAVING_SEGMENT_FILE, filename.c_str());
- FILE* file = openFile(filename, "w");
+ FILE* file = openFile(filename, "wb");
try {
if(fwrite(btContext->getInfoHash(),
btContext->getInfoHashLength(), 1, file) < 1) {
@@ -93,7 +94,7 @@ void DefaultBtProgressInfoFile::save() {
void DefaultBtProgressInfoFile::load() {
logger->info(MSG_LOADING_SEGMENT_FILE, filename.c_str());
- FILE* file = openFile(filename, "r+");
+ FILE* file = openFile(filename, "r+b");
unsigned char* savedInfoHash = 0;
unsigned char* savedBitfield = 0;
try {
@@ -161,6 +162,9 @@ FILE* DefaultBtProgressInfoFile::openFile(const string& filename,
throw new DlAbortEx(EX_SEGMENT_FILE_OPEN,
filename.c_str(), strerror(errno));
}
+#ifdef HAVE_SETMODE
+ setmode(fileno(file), O_BINARY);
+#endif
return file;
}