Update layer to 79. Some fixes.
GitOrigin-RevId: 9356eee58e48d7c191a1bccb7e25d6875a07fb51
This commit is contained in:
parent
b03fff4ff0
commit
1a0c874a67
@ -340,7 +340,7 @@ photos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;
|
|||||||
upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
|
upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;
|
||||||
upload.fileCdnRedirect#f18cda44 dc_id:int file_token:bytes encryption_key:bytes encryption_iv:bytes file_hashes:Vector<FileHash> = upload.File;
|
upload.fileCdnRedirect#f18cda44 dc_id:int file_token:bytes encryption_key:bytes encryption_iv:bytes file_hashes:Vector<FileHash> = upload.File;
|
||||||
|
|
||||||
dcOption#5d8c6cc flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true id:int ip_address:string port:int = DcOption;
|
dcOption#18b7a10d flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true id:int ip_address:string port:int secret:flags.10?bytes = DcOption;
|
||||||
|
|
||||||
config#86b5778e flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string suggested_lang_code:flags.2?string lang_pack_version:flags.2?int = Config;
|
config#86b5778e flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string suggested_lang_code:flags.2?string lang_pack_version:flags.2?int = Config;
|
||||||
|
|
||||||
|
Binary file not shown.
@ -477,7 +477,7 @@ class ConfigRecoverer : public Actor {
|
|||||||
auto promise = PromiseCreator::lambda([actor_id = actor_shared(this)](Result<SimpleConfig> r_simple_config) {
|
auto promise = PromiseCreator::lambda([actor_id = actor_shared(this)](Result<SimpleConfig> r_simple_config) {
|
||||||
send_closure(actor_id, &ConfigRecoverer::on_simple_config, std::move(r_simple_config), false);
|
send_closure(actor_id, &ConfigRecoverer::on_simple_config, std::move(r_simple_config), false);
|
||||||
});
|
});
|
||||||
auto get_dimple_config = [&]() {
|
auto get_simple_config = [&]() {
|
||||||
switch (simple_config_turn_ % 3) {
|
switch (simple_config_turn_ % 3) {
|
||||||
case 0:
|
case 0:
|
||||||
return get_simple_config_azure;
|
return get_simple_config_azure;
|
||||||
@ -488,7 +488,7 @@ class ConfigRecoverer : public Actor {
|
|||||||
return get_simple_config_google_dns;
|
return get_simple_config_google_dns;
|
||||||
}
|
}
|
||||||
}();
|
}();
|
||||||
simple_config_query_ = get_dimple_config(std::move(promise), G()->is_test_dc(), G()->get_gc_scheduler_id());
|
simple_config_query_ = get_simple_config(std::move(promise), G()->is_test_dc(), G()->get_gc_scheduler_id());
|
||||||
simple_config_turn_++;
|
simple_config_turn_++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -958,6 +958,14 @@ Result<SecureValueWithCredentials> decrypt_secure_value(FileManager *file_manage
|
|||||||
case SecureValueType::PhoneNumber:
|
case SecureValueType::PhoneNumber:
|
||||||
res.data = encrypted_secure_value.data.data;
|
res.data = encrypted_secure_value.data.data;
|
||||||
break;
|
break;
|
||||||
|
case SecureValueType::UtilityBill:
|
||||||
|
case SecureValueType::BankStatement:
|
||||||
|
case SecureValueType::RentalAgreement: {
|
||||||
|
TRY_RESULT(files, decrypt_secure_files(file_manager, secret, encrypted_secure_value.files));
|
||||||
|
res.files = std::move(files.first);
|
||||||
|
res_credentials.files = std::move(files.second);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
TRY_RESULT(data, decrypt_secure_data(secret, encrypted_secure_value.data));
|
TRY_RESULT(data, decrypt_secure_data(secret, encrypted_secure_value.data));
|
||||||
res.data = std::move(data.first);
|
res.data = std::move(data.first);
|
||||||
@ -1051,6 +1059,14 @@ EncryptedSecureValue encrypt_secure_value(FileManager *file_manager, const secur
|
|||||||
res.data = EncryptedSecureData{secure_value.data, "", ""};
|
res.data = EncryptedSecureData{secure_value.data, "", ""};
|
||||||
res.hash = secure_storage::calc_value_hash(secure_value.data).as_slice().str();
|
res.hash = secure_storage::calc_value_hash(secure_value.data).as_slice().str();
|
||||||
break;
|
break;
|
||||||
|
case SecureValueType::UtilityBill:
|
||||||
|
case SecureValueType::BankStatement:
|
||||||
|
case SecureValueType::RentalAgreement: {
|
||||||
|
string to_hash;
|
||||||
|
res.files = encrypt_secure_files(file_manager, master_secret, secure_value.files, to_hash);
|
||||||
|
res.hash = secure_storage::calc_value_hash(to_hash).as_slice().str();
|
||||||
|
break;
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
string to_hash;
|
string to_hash;
|
||||||
res.data = encrypt_secure_data(master_secret, secure_value.data, to_hash);
|
res.data = encrypt_secure_data(master_secret, secure_value.data, to_hash);
|
||||||
|
@ -5,10 +5,12 @@
|
|||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "td/utils/logging.h"
|
#include "td/utils/logging.h"
|
||||||
#include "td/utils/StringBuilder.h"
|
#include "td/utils/StringBuilder.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class DcId {
|
class DcId {
|
||||||
public:
|
public:
|
||||||
DcId() = default;
|
DcId() = default;
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "td/utils/tl_helpers.h"
|
#include "td/utils/tl_helpers.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class DcOption {
|
class DcOption {
|
||||||
// do not forget to update PrintFlags
|
// do not forget to update PrintFlags
|
||||||
enum Flags : int32 { IPv6 = 1, MediaOnly = 2, ObfuscatedTcpOnly = 4, Cdn = 8, Static = 16 };
|
enum Flags : int32 { IPv6 = 1, MediaOnly = 2, ObfuscatedTcpOnly = 4, Cdn = 8, Static = 16 };
|
||||||
@ -201,7 +202,9 @@ class DcOptions {
|
|||||||
|
|
||||||
std::vector<DcOption> dc_options;
|
std::vector<DcOption> dc_options;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline StringBuilder &operator<<(StringBuilder &sb, const DcOptions &dc_options) {
|
inline StringBuilder &operator<<(StringBuilder &sb, const DcOptions &dc_options) {
|
||||||
return sb << "DcOptions" << format::as_array(dc_options.dc_options);
|
return sb << "DcOptions" << format::as_array(dc_options.dc_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // namespace td
|
}; // namespace td
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class DcOptionsSet {
|
class DcOptionsSet {
|
||||||
public:
|
public:
|
||||||
void add_dc_options(DcOptions dc_options);
|
void add_dc_options(DcOptions dc_options);
|
||||||
@ -102,4 +103,5 @@ class DcOptionsSet {
|
|||||||
void init_option_stat(DcOptionInfo *option_info);
|
void init_option_stat(DcOptionInfo *option_info);
|
||||||
OptionStat *get_option_stat(const DcOptionInfo *option_info);
|
OptionStat *get_option_stat(const DcOptionInfo *option_info);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -18,7 +18,7 @@ class HeaderStorer {
|
|||||||
}
|
}
|
||||||
template <class StorerT>
|
template <class StorerT>
|
||||||
void store(StorerT &storer) const {
|
void store(StorerT &storer) const {
|
||||||
constexpr int32 LAYER = 78;
|
constexpr int32 LAYER = 79;
|
||||||
|
|
||||||
using td::store;
|
using td::store;
|
||||||
// invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
|
// invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "td/utils/Slice.h"
|
#include "td/utils/Slice.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class MtprotoHeader {
|
class MtprotoHeader {
|
||||||
public:
|
public:
|
||||||
struct Options {
|
struct Options {
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "td/telegram/Global.h"
|
#include "td/telegram/Global.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
ListNode net_query_list_;
|
ListNode net_query_list_;
|
||||||
|
|
||||||
int32 NetQuery::get_my_id() {
|
int32 NetQuery::get_my_id() {
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "td/utils/Gzip.h"
|
#include "td/utils/Gzip.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
NetQueryCreator::Ptr NetQueryCreator::create(uint64 id, const Storer &storer, DcId dc_id, NetQuery::Type type,
|
NetQueryCreator::Ptr NetQueryCreator::create(uint64 id, const Storer &storer, DcId dc_id, NetQuery::Type type,
|
||||||
NetQuery::AuthFlag auth_flag, NetQuery::GzipFlag gzip_flag,
|
NetQuery::AuthFlag auth_flag, NetQuery::GzipFlag gzip_flag,
|
||||||
double total_timeout_limit) {
|
double total_timeout_limit) {
|
||||||
@ -37,4 +38,5 @@ NetQueryCreator::Ptr NetQueryCreator::create(uint64 id, const Storer &storer, Dc
|
|||||||
query->total_timeout_limit = total_timeout_limit;
|
query->total_timeout_limit = total_timeout_limit;
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include "td/utils/Storer.h"
|
#include "td/utils/Storer.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class NetQueryCreator {
|
class NetQueryCreator {
|
||||||
public:
|
public:
|
||||||
using Ptr = NetQueryPtr;
|
using Ptr = NetQueryPtr;
|
||||||
@ -51,4 +52,5 @@ class NetQueryCreator {
|
|||||||
private:
|
private:
|
||||||
ObjectPool<NetQuery> object_pool_;
|
ObjectPool<NetQuery> object_pool_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -21,15 +21,12 @@
|
|||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class NetQueryDelayer;
|
class NetQueryDelayer;
|
||||||
class DataCenter;
|
|
||||||
class DcAuthManager;
|
class DcAuthManager;
|
||||||
class SessionMultiProxy;
|
class SessionMultiProxy;
|
||||||
class PublicRsaKeyShared;
|
class PublicRsaKeyShared;
|
||||||
class PublicRsaKeyWatchdog;
|
class PublicRsaKeyWatchdog;
|
||||||
} // namespace td
|
|
||||||
|
|
||||||
namespace td {
|
|
||||||
|
|
||||||
// Not just dispatcher.
|
// Not just dispatcher.
|
||||||
class NetQueryDispatcher {
|
class NetQueryDispatcher {
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "td/utils/logging.h"
|
#include "td/utils/logging.h"
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
enum class NetType : int8 { Other, Wifi, Mobile, MobileRoaming, Size, None, Unknown };
|
enum class NetType : int8 { Other, Wifi, Mobile, MobileRoaming, Size, None, Unknown };
|
||||||
|
|
||||||
inline NetType from_td_api(tl_object_ptr<td_api::NetworkType> &net_type) {
|
inline NetType from_td_api(tl_object_ptr<td_api::NetworkType> &net_type) {
|
||||||
|
@ -199,7 +199,7 @@ void Session::connection_online_update(bool force) {
|
|||||||
void Session::send(NetQueryPtr &&query) {
|
void Session::send(NetQueryPtr &&query) {
|
||||||
last_activity_timestamp_ = Time::now();
|
last_activity_timestamp_ = Time::now();
|
||||||
|
|
||||||
query->debug("Session: received from DataCenter");
|
query->debug("Session: received from SessionProxy");
|
||||||
query->set_session_id(auth_data_.session_id_);
|
query->set_session_id(auth_data_.session_id_);
|
||||||
VLOG(net_query) << "got query " << query;
|
VLOG(net_query) << "got query " << query;
|
||||||
if (query->update_is_ready()) {
|
if (query->update_is_ready()) {
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class SessionProxy;
|
class SessionProxy;
|
||||||
|
|
||||||
class SessionMultiProxy : public Actor {
|
class SessionMultiProxy : public Actor {
|
||||||
@ -50,4 +51,5 @@ class SessionMultiProxy : public Actor {
|
|||||||
|
|
||||||
void update_auth_state();
|
void update_auth_state();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
namespace mtproto {
|
namespace mtproto {
|
||||||
class RawConnection;
|
class RawConnection;
|
||||||
} // namespace mtproto
|
} // namespace mtproto
|
||||||
@ -179,4 +180,5 @@ void SessionProxy::on_tmp_auth_key_updated(mtproto::AuthKey auth_key) {
|
|||||||
LOG(WARNING) << "tmp_auth_key " << auth_key.id() << ": " << state;
|
LOG(WARNING) << "tmp_auth_key " << auth_key.id() << ": " << state;
|
||||||
tmp_auth_key_ = std::move(auth_key);
|
tmp_auth_key_ = std::move(auth_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -13,7 +13,9 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class Session;
|
class Session;
|
||||||
|
|
||||||
class SessionProxy : public Actor {
|
class SessionProxy : public Actor {
|
||||||
public:
|
public:
|
||||||
friend class SessionCallback;
|
friend class SessionCallback;
|
||||||
@ -49,4 +51,5 @@ class SessionProxy : public Actor {
|
|||||||
void start_up() override;
|
void start_up() override;
|
||||||
void tear_down() override;
|
void tear_down() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
class TempAuthKeyWatchdog : public NetQueryCallback {
|
class TempAuthKeyWatchdog : public NetQueryCallback {
|
||||||
class RegisteredAuthKeyImpl {
|
class RegisteredAuthKeyImpl {
|
||||||
public:
|
public:
|
||||||
@ -124,4 +125,5 @@ class TempAuthKeyWatchdog : public NetQueryCallback {
|
|||||||
try_sync();
|
try_sync();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
Loading…
Reference in New Issue
Block a user