diff --git a/td/telegram/Global.cpp b/td/telegram/Global.cpp index 810361872..b99dd3c02 100644 --- a/td/telegram/Global.cpp +++ b/td/telegram/Global.cpp @@ -104,8 +104,10 @@ Status Global::init(const TdParameters ¶meters, ActorId td, unique_ptr system_time) { double time_backwards_fix = saved_diff.system_time - system_time; - LOG(WARNING) << "Fix system time which went backwards: " << format::as_time(time_backwards_fix) << " " - << tag("saved_system_time", saved_diff.system_time) << tag("system_time", system_time); + if (time_backwards_fix > 60) { + LOG(WARNING) << "Fix system time which went backwards: " << format::as_time(time_backwards_fix) << " " + << tag("saved_system_time", saved_diff.system_time) << tag("system_time", system_time); + } diff += time_backwards_fix; } LOG(DEBUG) << "LOAD: " << tag("server_time_difference", diff); @@ -118,6 +120,11 @@ Status Global::init(const TdParameters ¶meters, ActorId td, unique_ptr(server_time); +} + void Global::update_server_time_difference(double diff) { if (!server_time_difference_was_updated_ || server_time_difference_ < diff) { server_time_difference_ = diff; diff --git a/td/telegram/Global.h b/td/telegram/Global.h index 8cd6e3cfa..589fa852a 100644 --- a/td/telegram/Global.h +++ b/td/telegram/Global.h @@ -124,9 +124,6 @@ class Global : public ActorContext { return *shared_config_; } - double from_server_time(double date) const { - return date - get_server_time_difference(); - } double to_server_time(double now) const { return now + get_server_time_difference(); } @@ -137,10 +134,10 @@ class Global : public ActorContext { return to_server_time(Time::now_cached()); } int32 unix_time() const { - return static_cast(server_time()); + return to_unix_time(server_time()); } int32 unix_time_cached() const { - return static_cast(server_time_cached()); + return to_unix_time(server_time_cached()); } void update_server_time_difference(double diff); @@ -426,6 +423,8 @@ class Global : public ActorContext { std::unordered_map location_access_hashes_; + static int32 to_unix_time(double server_time); + void do_save_server_time_difference(); void do_close(Promise<> on_finish, bool destroy_flag);