diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index ac67bd550..c1bf45214 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -50,6 +50,8 @@ StringBuilder &operator<<(StringBuilder &string_builder, FileLocationSource sour return string_builder << "None"; case FileLocationSource::FromUser: return string_builder << "User"; + case FileLocationSource::FromBinlog: + return string_builder << "Binlog"; case FileLocationSource::FromDatabase: return string_builder << "Database"; case FileLocationSource::FromServer: @@ -966,7 +968,8 @@ Result FileManager::register_file(FileData &&data, FileLocationSource fi bool has_remote = data.remote_.type() == RemoteFileLocation::Type::Full; bool has_generate = data.generate_ != nullptr; if (data.local_.type() == LocalFileLocation::Type::Full && !force) { - if (file_location_source == FileLocationSource::FromDatabase) { + if (file_location_source == FileLocationSource::FromBinlog || + file_location_source == FileLocationSource::FromDatabase) { PathView path_view(data.local_.full().path_); if (path_view.is_relative()) { data.local_.full().path_ = PSTRING() diff --git a/td/telegram/files/FileManager.h b/td/telegram/files/FileManager.h index 8c9bd53ec..78b1a947a 100644 --- a/td/telegram/files/FileManager.h +++ b/td/telegram/files/FileManager.h @@ -46,7 +46,7 @@ extern int VERBOSITY_NAME(update_file); class FileData; class FileDbInterface; -enum class FileLocationSource : int8 { None, FromUser, FromDatabase, FromServer }; +enum class FileLocationSource : int8 { None, FromUser, FromBinlog, FromDatabase, FromServer }; struct NewRemoteFileLocation { NewRemoteFileLocation() = default; diff --git a/td/telegram/files/FileManager.hpp b/td/telegram/files/FileManager.hpp index 8f9d397dc..3b4f2de63 100644 --- a/td/telegram/files/FileManager.hpp +++ b/td/telegram/files/FileManager.hpp @@ -155,7 +155,7 @@ FileId FileManager::parse_file(ParserT &parser) { if (parser.version() >= static_cast(Version::StoreFileOwnerId)) { parse(owner_dialog_id, parser); } - return register_remote(full_remote_location, FileLocationSource::FromDatabase, owner_dialog_id, size, + return register_remote(full_remote_location, FileLocationSource::FromBinlog, owner_dialog_id, size, expected_size, name); } case FileStoreType::Local: { @@ -200,7 +200,7 @@ FileId FileManager::parse_file(ParserT &parser) { full_generated_location.conversion_ = PSTRING() << "#file_id#" << download_file_id.get(); } - auto r_file_id = register_generate(full_generated_location.file_type_, FileLocationSource::FromDatabase, + auto r_file_id = register_generate(full_generated_location.file_type_, FileLocationSource::FromBinlog, full_generated_location.original_path_, full_generated_location.conversion_, owner_dialog_id, expected_size); if (r_file_id.is_ok()) { @@ -217,7 +217,7 @@ FileId FileManager::parse_file(ParserT &parser) { if (parser.version() >= static_cast(Version::StoreFileOwnerId)) { parse(owner_dialog_id, parser); } - return register_url(url, type, FileLocationSource::FromDatabase, owner_dialog_id); + return register_url(url, type, FileLocationSource::FromBinlog, owner_dialog_id); } } return FileId();