mirror of
https://github.com/sochix/TLSharp.git
synced 2026-04-06 06:55:06 +00:00
Merge remote-tracking branch 'refs/remotes/origin/master' into pr/250
# Conflicts: # TLSharp.Core/TLSharp.Core.csproj
This commit is contained in:
commit
f40034ad09
6 changed files with 19 additions and 16 deletions
|
|
@ -279,9 +279,7 @@ namespace TLSharp.Core.Network
|
|||
{
|
||||
var resultString = Regex.Match(errorMessage, @"\d+").Value;
|
||||
var dcIdx = int.Parse(resultString);
|
||||
var exception = new InvalidOperationException($"Your phone number registered to {dcIdx} dc. Please update settings. See https://github.com/sochix/TLSharp#i-get-an-error-migrate_x for details.");
|
||||
exception.Data.Add("dcId", dcIdx);
|
||||
throw exception;
|
||||
throw new MigrationNeededException(dcIdx);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -484,4 +482,15 @@ namespace TLSharp.Core.Network
|
|||
return new MemoryStream(new byte[len], 0, len, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
internal class MigrationNeededException : Exception
|
||||
{
|
||||
internal int DC { get; private set; }
|
||||
|
||||
internal MigrationNeededException(int dc)
|
||||
: base ("$Your phone number is registered to a different dc: {dc}. Please migrate.")
|
||||
{
|
||||
DC = dc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>TLSharp.Core</RootNamespace>
|
||||
<AssemblyName>TLSharp.Core</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
|
|
|
|||
|
|
@ -110,16 +110,9 @@ namespace TLSharp.Core
|
|||
|
||||
completed = true;
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
catch (MigrationNeededException ex)
|
||||
{
|
||||
if (ex.Message.StartsWith("Your phone number registered to") && ex.Data["dcId"] != null)
|
||||
{
|
||||
await ReconnectToDcAsync((int)ex.Data["dcId"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw;
|
||||
}
|
||||
await ReconnectToDcAsync(ex.DC);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue