From 0d0b6e7df6c529b68d95f17db6f0cf73317e9fdf Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Tue, 29 Jun 2021 03:30:23 +0300 Subject: [PATCH] GramJs: Do not reconnect after manual disconnect (#1217) --- src/lib/gramjs/network/MTProtoSender.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/gramjs/network/MTProtoSender.js b/src/lib/gramjs/network/MTProtoSender.js index 13f16bfdc..c073bda25 100644 --- a/src/lib/gramjs/network/MTProtoSender.js +++ b/src/lib/gramjs/network/MTProtoSender.js @@ -81,6 +81,12 @@ class MTProtoSender { this._isMainSender = args.isMainSender; this._onConnectionBreak = args.onConnectionBreak; + + /** + * whether we disconnected ourself or telegram did it. + */ + this.userDisconnected = false; + /** * Whether the user has explicitly connected or disconnected. * @@ -192,6 +198,7 @@ class MTProtoSender { * all pending requests, and closes the send and receive loops. */ async disconnect() { + this.userDisconnected = true; await this._disconnect(); } @@ -378,8 +385,11 @@ class MTProtoSender { body = await this._connection.recv(); } catch (e) { // this._log.info('Connection closed while receiving data'); - this._log.warn('Connection closed while receiving data'); - this.reconnect(); + /** when the server disconnects us we want to reconnect */ + if (!this.userDisconnected) { + this._log.warn('Connection closed while receiving data'); + this.reconnect(); + } return; } try {