Przeglądaj źródła

Fix downloading from incorrect DC.

painor 4 lat temu
rodzic
commit
0c391dcab3
2 zmienionych plików z 8 dodań i 1 usunięć
  1. 6 0
      gramjs/client/TelegramClient.ts
  2. 2 1
      gramjs/client/downloads.ts

+ 6 - 0
gramjs/client/TelegramClient.ts

@@ -458,6 +458,10 @@ export class TelegramClient extends TelegramBaseClient {
                 sender.dcId = dcId;
                 return sender;
             } catch (e) {
+                // we can't create sender for our own main DC
+                if (e.message=="DC_ID_INVALID"){
+                    throw e;
+                }
                 await sender.disconnect();
             }
         }
@@ -467,6 +471,7 @@ export class TelegramClient extends TelegramBaseClient {
     async getDC(
         dcId: number
     ): Promise<{ id: number; ipAddress: string; port: number }> {
+        this._log.debug(`Getting DC ${dcId}`);
         if (!IS_NODE) {
             switch (dcId) {
                 case 1:
@@ -525,6 +530,7 @@ export class TelegramClient extends TelegramBaseClient {
     }
 
     async _borrowExportedSender(dcId: number, retries = this._requestRetries) {
+        this._log.debug(`Borrowing client for DC ${dcId}`)
         let senderPromise = this._borrowedSenderPromises[dcId];
         if (!senderPromise) {
             senderPromise = this._createExportedSender(dcId, retries);

+ 2 - 1
gramjs/client/downloads.ts

@@ -70,17 +70,18 @@ export async function downloadFile(
     }
 
     let sender: MTProtoSender;
+
     if (dcId) {
         try {
             sender = await client._borrowExportedSender(dcId);
             client._log.debug(`Finished creating sender for ${dcId}`);
         } catch (e) {
             // This should never raise
-            client._log.error(e);
             if (e.message === "DC_ID_INVALID") {
                 // Can't export a sender for the ID we are currently in
                 sender = client._sender;
             } else {
+                client._log.error(e);
                 throw e;
             }
         }