From 3635d312ce4dae726d9ae555d754f0613b2b3786 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Wed, 11 Aug 2021 01:27:58 +0300 Subject: [PATCH] GramJs: Use "-1" DCs for file transfers (generate keys with standard DCs) (#1368) --- src/lib/gramjs/Utils.js | 19 +++++++++++++------ src/lib/gramjs/client/TelegramClient.js | 3 ++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/lib/gramjs/Utils.js b/src/lib/gramjs/Utils.js index 3cb93892a..4f80f66e7 100644 --- a/src/lib/gramjs/Utils.js +++ b/src/lib/gramjs/Utils.js @@ -605,37 +605,44 @@ function isListLike(item) { ) } */ -function getDC(dcId) { +/** + * Returns the appropriate DC based on the id + * @param dcId the id of the DC. + * @param downloadDC whether to use -1 DCs or not + * (These only support downloading/uploading and not creating a new AUTH key) + * @return {{port: number, ipAddress: string, id: number}} + */ +function getDC(dcId, downloadDC = false) { // TODO Move to external config switch (dcId) { case 1: return { id: 1, - ipAddress: 'zws1.web.telegram.org', + ipAddress: `zws1${downloadDC ? '-1' : ''}.web.telegram.org`, port: 443, }; case 2: return { id: 2, - ipAddress: 'zws2.web.telegram.org', + ipAddress: `zws2${downloadDC ? '-1' : ''}.web.telegram.org`, port: 443, }; case 3: return { id: 3, - ipAddress: 'zws3.web.telegram.org', + ipAddress: `zws3${downloadDC ? '-1' : ''}.web.telegram.org`, port: 443, }; case 4: return { id: 4, - ipAddress: 'zws4.web.telegram.org', + ipAddress: `zws4${downloadDC ? '-1' : ''}.web.telegram.org`, port: 443, }; case 5: return { id: 5, - ipAddress: 'zws5.web.telegram.org', + ipAddress: `zws5${downloadDC ? '-1' : ''}.web.telegram.org`, port: 443, }; default: diff --git a/src/lib/gramjs/client/TelegramClient.js b/src/lib/gramjs/client/TelegramClient.js index 422603116..1e83b75eb 100644 --- a/src/lib/gramjs/client/TelegramClient.js +++ b/src/lib/gramjs/client/TelegramClient.js @@ -327,7 +327,8 @@ class TelegramClient { } async _connectSender(sender, dcId) { - const dc = utils.getDC(dcId); + // if we don't already have an auth key we want to use normal DCs not -1 + const dc = utils.getDC(dcId, !!sender.authKey.getKey()); while (true) { try {