From 4511c82cb095fb02eb5ff8de5d55d4cc26903c70 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 3 Mar 2026 13:15:54 +0200 Subject: [PATCH] gotd: only update server time offset once --- pkg/gotd/mtproto/handle_session_created.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/gotd/mtproto/handle_session_created.go b/pkg/gotd/mtproto/handle_session_created.go index 629f093b..a74ff67e 100644 --- a/pkg/gotd/mtproto/handle_session_created.go +++ b/pkg/gotd/mtproto/handle_session_created.go @@ -18,13 +18,17 @@ func (c *Conn) handleSessionCreated(b *bin.Buffer) error { created := proto.MessageID(s.FirstMsgID).Time() now := c.clock.Now() + hasServerTimeOffset := c.hasServerTimeOffset() c.log.Debug("Session created", zap.Int64("unique_id", s.UniqueID), zap.Int64("first_msg_id", s.FirstMsgID), zap.Time("first_msg_time", created.Local()), + zap.Bool("has_server_time_offset", hasServerTimeOffset), ) - c.setServerTimeOffset(created.Sub(now)) + if !hasServerTimeOffset { + c.setServerTimeOffset(created.Sub(now)) + } c.storeSalt(s.ServerSalt) if err := c.handler.OnSession(c.session()); err != nil { return errors.Wrap(err, "handler.OnSession")