From e5385cbd0b05446087c717973f131b0ba8f8e760 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 4 Jun 2018 19:35:29 +0300 Subject: [PATCH] Better ping time calculation. GitOrigin-RevId: d9cf250dae657ed498d932b2e335efbddb374c43 --- td/telegram/net/ConnectionCreator.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/td/telegram/net/ConnectionCreator.cpp b/td/telegram/net/ConnectionCreator.cpp index f729fe43..17280684 100644 --- a/td/telegram/net/ConnectionCreator.cpp +++ b/td/telegram/net/ConnectionCreator.cpp @@ -508,17 +508,18 @@ void ConnectionCreator::ping_proxy_socket_fd(SocketFd socket_fd, mtproto::Transp auto token = next_token(); auto raw_connection = std::make_unique(std::move(socket_fd), std::move(transport_type), nullptr); - children_[token] = {false, - create_actor( - "PingActor", std::move(raw_connection), - PromiseCreator::lambda([start = Time::now(), promise = std::move(promise)]( - Result> result) mutable { - if (result.is_error()) { - return promise.set_error(Status::Error(400, result.error().message())); - } - promise.set_value(Time::now() - start); - }), - create_reference(token))}; + children_[token] = { + false, create_actor( + "PingActor", std::move(raw_connection), + PromiseCreator::lambda( + [promise = std::move(promise)](Result> result) mutable { + if (result.is_error()) { + return promise.set_error(Status::Error(400, result.error().message())); + } + auto ping_time = result.ok()->rtt_; + promise.set_value(std::move(ping_time)); + }), + create_reference(token))}; } void ConnectionCreator::enable_proxy_impl(int32 proxy_id) {