diff --git a/TLSharp.Core/Network/MtProtoSender.cs b/TLSharp.Core/Network/MtProtoSender.cs index 8a959ca..f45af2d 100644 --- a/TLSharp.Core/Network/MtProtoSender.cs +++ b/TLSharp.Core/Network/MtProtoSender.cs @@ -305,6 +305,12 @@ namespace TLSharp.Core.Network var dcIdx = int.Parse(resultString); throw new UserMigrationException(dcIdx); } + else if (errorMessage.StartsWith("NETWORK_MIGRATE_")) + { + var resultString = Regex.Match(errorMessage, @"\d+").Value; + var dcIdx = int.Parse(resultString); + throw new NetworkMigrationException(dcIdx); + } else if (errorMessage == "PHONE_CODE_INVALID") { throw new InvalidPhoneCodeException("The numeric code used to authenticate does not match the numeric code sent by SMS/Telegram"); @@ -571,4 +577,12 @@ namespace TLSharp.Core.Network { } } -} \ No newline at end of file + + internal class NetworkMigrationException : DataCenterMigrationException + { + internal NetworkMigrationException(int dc) + : base($"Network located on a different DC: {dc}.", dc) + { + } + } +} diff --git a/TLSharp.Core/TelegramClient.cs b/TLSharp.Core/TelegramClient.cs index a8f8842..5aca5c0 100644 --- a/TLSharp.Core/TelegramClient.cs +++ b/TLSharp.Core/TelegramClient.cs @@ -145,7 +145,7 @@ namespace TLSharp.Core completed = true; } - catch (PhoneMigrationException ex) + catch (DataCenterMigrationException ex) { await ReconnectToDcAsync(ex.DC); }