diff --git a/src/ringdht/namedirectory.cpp b/src/ringdht/namedirectory.cpp index f40b2539da2adff108cc9f06f95bf3fcfa0bc23d..2541d7835ca320bd0a026aeb2e8f7b0ff3c02ea3 100644 --- a/src/ringdht/namedirectory.cpp +++ b/src/ringdht/namedirectory.cpp @@ -319,7 +319,7 @@ void NameDirectory::saveCache() { fileutils::recursive_mkdir(fileutils::get_cache_dir()+DIR_SEPARATOR_STR+"namecache"); - std::ofstream file(cachePath_, std::ios::trunc); + std::ofstream file(cachePath_, std::ios::trunc | std::ios::binary); msgpack::pack(file, nameCache_); RING_DBG("Saved %lu name-address mappings", (long unsigned)nameCache_.size()); } diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 1d66c11209b9d476ea1c4417d4de46f3d7cec004..d8c98156d8662a13729a90980c36223ba6569914 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -2578,7 +2578,7 @@ template<typename ID=dht::Value::Id> void saveIdList(const std::string& path, const std::set<ID>& ids) { - std::ofstream file(path, std::ios::trunc); + std::ofstream file(path, std::ios::trunc | std::ios::binary); if (!file.is_open()) { RING_ERR("Could not save to %s", path.c_str()); return; @@ -2645,7 +2645,7 @@ RingAccount::loadKnownDevices() void RingAccount::saveKnownDevices() const { - std::ofstream file(idPath_+DIR_SEPARATOR_STR "knownDevicesNames", std::ios::trunc); + std::ofstream file(idPath_+DIR_SEPARATOR_STR "knownDevicesNames", std::ios::trunc | std::ios::binary); std::map<dht::InfoHash, std::pair<std::string, uint64_t>> devices; for (const auto& id : knownDevices_) @@ -2674,7 +2674,7 @@ RingAccount::saveNodes(const std::vector<dht::NodeExport>& nodes) const fileutils::check_dir(cachePath_.c_str()); std::string nodesPath = cachePath_+DIR_SEPARATOR_STR "nodes"; { - std::ofstream file(nodesPath, std::ios::trunc); + std::ofstream file(nodesPath, std::ios::trunc | std::ios::binary); if (!file.is_open()) { RING_ERR("Could not save nodes to %s", nodesPath.c_str()); return; @@ -2920,7 +2920,7 @@ RingAccount::loadContacts() void RingAccount::saveContacts() const { - std::ofstream file(idPath_+DIR_SEPARATOR_STR "contacts", std::ios::trunc); + std::ofstream file(idPath_+DIR_SEPARATOR_STR "contacts", std::ios::trunc | std::ios::binary); msgpack::pack(file, contacts_); } @@ -3003,7 +3003,7 @@ RingAccount::sendTrustRequestConfirm(const dht::InfoHash& to) void RingAccount::saveTrustRequests() const { - std::ofstream file(idPath_+DIR_SEPARATOR_STR "incomingTrustRequests", std::ios::trunc); + std::ofstream file(idPath_+DIR_SEPARATOR_STR "incomingTrustRequests", std::ios::trunc | std::ios::binary); msgpack::pack(file, trustRequests_); }