mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
- removed assignements to int for the Enum DataCenterIPVersion
- removed sorting of the list of addresses if the DataCenterIPVersion.Default is chosen
This commit is contained in:
parent
365fe6775e
commit
2f67993e93
|
|
@ -7,24 +7,24 @@
|
|||
public enum DataCenterIPVersion
|
||||
{
|
||||
/// <summary>
|
||||
/// Prefers IPv6 addresses if any is passed by Telegram
|
||||
/// Picks the first available address passed by Telegram
|
||||
/// </summary>
|
||||
Default = 0,
|
||||
Default,
|
||||
/// <summary>
|
||||
/// Takes only IPv4 addresses
|
||||
/// </summary>
|
||||
OnlyIPv4 = 1,
|
||||
OnlyIPv4,
|
||||
/// <summary>
|
||||
/// Takes only IPv6 addresses
|
||||
/// </summary>
|
||||
OnlyIPv6 = 2,
|
||||
OnlyIPv6,
|
||||
/// <summary>
|
||||
/// Connection to IPv4 addresses is preferred to IPv6 addresses
|
||||
/// </summary>
|
||||
PreferIPv4 = 3,
|
||||
PreferIPv4,
|
||||
/// <summary>
|
||||
/// Connection to IPv6 addresses is preferred to IPv4 addresses
|
||||
/// </summary>
|
||||
PreferIPv6 = 4,
|
||||
PreferIPv6,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,12 +121,18 @@ namespace TLSharp.Core
|
|||
|| dcIpVersion == DataCenterIPVersion.PreferIPv4 // we can take both types of address
|
||||
|| dcIpVersion == DataCenterIPVersion.PreferIPv6 // we can take both types of address
|
||||
)
|
||||
).OrderBy(d => d.Ipv6);
|
||||
|
||||
if (dcs.Count() == 0)
|
||||
throw new Exception($"Telegram server didn't provide us with any IPAddress that matches your preferences. If you chose OnlyIPvX, try switch to PreferIPvX instead.");
|
||||
|
||||
var dc = dcIpVersion == DataCenterIPVersion.PreferIPv4 ? dcs.First() : dcs.Last(); // ipv4 addresses are at the beginning of the list because it was ordered
|
||||
);
|
||||
|
||||
TLDcOption dc;
|
||||
if (dcIpVersion != DataCenterIPVersion.Default)
|
||||
{
|
||||
if (dcs.Count() == 0)
|
||||
throw new Exception($"Telegram server didn't provide us with any IPAddress that matches your preferences. If you chose OnlyIPvX, try switch to PreferIPvX instead.");
|
||||
dcs = dcs.OrderBy(d => d.Ipv6);
|
||||
dc = dcIpVersion == DataCenterIPVersion.PreferIPv4 ? dcs.First() : dcs.Last(); // ipv4 addresses are at the beginning of the list because it was ordered
|
||||
}
|
||||
else
|
||||
dc = dcs.First();
|
||||
|
||||
var dataCenter = new DataCenter (dcId, dc.IpAddress, dc.Port);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue