From 92f5221a89b696ea235354066147cbbaee49d19b Mon Sep 17 00:00:00 2001 From: Amin Date: Thu, 18 May 2017 17:20:33 +0430 Subject: [PATCH] Added while loop to MakeAuthAsync method. fix PhoneMigrationException by reconnecting to DC on the error . (fix for #458) --- TLSharp.Core/TelegramClient.cs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/TLSharp.Core/TelegramClient.cs b/TLSharp.Core/TelegramClient.cs index 825f9a7..ace058e 100644 --- a/TLSharp.Core/TelegramClient.cs +++ b/TLSharp.Core/TelegramClient.cs @@ -165,9 +165,23 @@ namespace TLSharp.Core if (String.IsNullOrWhiteSpace(code)) throw new ArgumentNullException(nameof(code)); - var request = new TLRequestSignIn() { phone_number = phoneNumber, phone_code_hash = phoneCodeHash, phone_code = code }; - await _sender.Send(request); - await _sender.Receive(request); + var request = new TLRequestSignIn() { phone_number = phoneNumber, phone_code_hash = phoneCodeHash, phone_code = code }; + + var completed = false; + + while (!completed) + { + try + { + await _sender.Send(request); + await _sender.Receive(request); + completed = true; + } + catch (PhoneMigrationException e) + { + await ReconnectToDcAsync(e.DC); + } + } OnUserAuthenticated(((TLUser)request.Response.user));