aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs')
-rw-r--r--Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs152
1 files changed, 70 insertions, 82 deletions
diff --git a/Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs b/Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs
index 9a0020de7..16f39daf7 100644
--- a/Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs
+++ b/Emby.Server.Implementations/Networking/IPNetwork/IPNetwork.cs
@@ -1,4 +1,4 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.IO;
using System.Net.Sockets;
using System.Numerics;
@@ -33,7 +33,7 @@ namespace System.Net
{
get
{
- BigInteger uintNetwork = this._ipaddress & this._netmask;
+ var uintNetwork = this._ipaddress & this._netmask;
return uintNetwork;
}
}
@@ -61,7 +61,7 @@ namespace System.Net
{
int width = this._family == Sockets.AddressFamily.InterNetwork ? 4 : 16;
- BigInteger uintBroadcast = this._network + this._netmask.PositiveReverse(width);
+ var uintBroadcast = this._network + this._netmask.PositiveReverse(width);
return uintBroadcast;
}
}
@@ -88,7 +88,7 @@ namespace System.Net
{
get
{
- BigInteger fisrt = this._family == Sockets.AddressFamily.InterNetworkV6
+ var fisrt = this._family == Sockets.AddressFamily.InterNetworkV6
? this._network
: (this.Usable <= 0) ? this._network : this._network + 1;
return IPNetwork.ToIPAddress(fisrt, this._family);
@@ -102,7 +102,7 @@ namespace System.Net
{
get
{
- BigInteger last = this._family == Sockets.AddressFamily.InterNetworkV6
+ var last = this._family == Sockets.AddressFamily.InterNetworkV6
? this._broadcast
: (this.Usable <= 0) ? this._network : this._broadcast - 1;
return IPNetwork.ToIPAddress(last, this._family);
@@ -122,8 +122,8 @@ namespace System.Net
return this.Total;
}
byte[] mask = new byte[] { 0xff, 0xff, 0xff, 0xff, 0x00 };
- BigInteger bmask = new BigInteger(mask);
- BigInteger usableIps = (_cidr > 30) ? 0 : ((bmask >> _cidr) - 1);
+ var bmask = new BigInteger(mask);
+ var usableIps = (_cidr > 30) ? 0 : ((bmask >> _cidr) - 1);
return usableIps;
}
}
@@ -137,7 +137,7 @@ namespace System.Net
{
int max = this._family == Sockets.AddressFamily.InterNetwork ? 32 : 128;
- BigInteger count = BigInteger.Pow(2, (max - _cidr));
+ var count = BigInteger.Pow(2, (max - _cidr));
return count;
}
}
@@ -523,9 +523,8 @@ namespace System.Net
return;
}
- BigInteger uintIpAddress = IPNetwork.ToBigInteger(ipaddress);
- byte? cidr2 = null;
- bool parsed = IPNetwork.TryToCidr(netmask, out cidr2);
+ var uintIpAddress = IPNetwork.ToBigInteger(ipaddress);
+ bool parsed = IPNetwork.TryToCidr(netmask, out var cidr2);
if (parsed == false)
{
if (tryParse == false)
@@ -537,7 +536,7 @@ namespace System.Net
}
byte cidr = (byte)cidr2;
- IPNetwork ipnet = new IPNetwork(uintIpAddress, ipaddress.AddressFamily, cidr);
+ var ipnet = new IPNetwork(uintIpAddress, ipaddress.AddressFamily, cidr);
ipnetwork = ipnet;
return;
@@ -615,8 +614,7 @@ namespace System.Net
/// <returns></returns>
public static BigInteger ToBigInteger(IPAddress ipaddress)
{
- BigInteger? uintIpAddress = null;
- IPNetwork.InternalToBigInteger(false, ipaddress, out uintIpAddress);
+ IPNetwork.InternalToBigInteger(false, ipaddress, out var uintIpAddress);
return (BigInteger)uintIpAddress;
}
@@ -630,8 +628,7 @@ namespace System.Net
/// <returns></returns>
public static bool TryToBigInteger(IPAddress ipaddress, out BigInteger? uintIpAddress)
{
- BigInteger? uintIpAddress2 = null;
- IPNetwork.InternalToBigInteger(true, ipaddress, out uintIpAddress2);
+ IPNetwork.InternalToBigInteger(true, ipaddress, out var uintIpAddress2);
bool parsed = (uintIpAddress2 != null);
uintIpAddress = uintIpAddress2;
return parsed;
@@ -681,9 +678,7 @@ namespace System.Net
/// <returns></returns>
public static BigInteger ToUint(byte cidr, AddressFamily family)
{
-
- BigInteger? uintNetmask = null;
- IPNetwork.InternalToBigInteger(false, cidr, family, out uintNetmask);
+ IPNetwork.InternalToBigInteger(false, cidr, family, out var uintNetmask);
return (BigInteger)uintNetmask;
}
@@ -695,9 +690,7 @@ namespace System.Net
/// <returns></returns>
public static bool TryToUint(byte cidr, AddressFamily family, out BigInteger? uintNetmask)
{
-
- BigInteger? uintNetmask2 = null;
- IPNetwork.InternalToBigInteger(true, cidr, family, out uintNetmask2);
+ IPNetwork.InternalToBigInteger(true, cidr, family, out var uintNetmask2);
bool parsed = (uintNetmask2 != null);
uintNetmask = uintNetmask2;
return parsed;
@@ -754,7 +747,7 @@ namespace System.Net
return;
}
- BigInteger mask = new BigInteger(new byte[] {
+ var mask = new BigInteger(new byte[] {
0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff,
@@ -762,7 +755,7 @@ namespace System.Net
0x00
});
- BigInteger masked = cidr == 0 ? 0 : mask << (128 - cidr);
+ var masked = cidr == 0 ? 0 : mask << (128 - cidr);
byte[] m = masked.ToByteArray();
byte[] bmask = new byte[17];
int copy = m.Length > 16 ? 16 : m.Length;
@@ -812,8 +805,7 @@ namespace System.Net
/// <returns></returns>
public static byte ToCidr(IPAddress netmask)
{
- byte? cidr = null;
- IPNetwork.InternalToCidr(false, netmask, out cidr);
+ IPNetwork.InternalToCidr(false, netmask, out var cidr);
return (byte)cidr;
}
@@ -827,8 +819,7 @@ namespace System.Net
/// <returns></returns>
public static bool TryToCidr(IPAddress netmask, out byte? cidr)
{
- byte? cidr2 = null;
- IPNetwork.InternalToCidr(true, netmask, out cidr2);
+ IPNetwork.InternalToCidr(true, netmask, out var cidr2);
bool parsed = (cidr2 != null);
cidr = cidr2;
return parsed;
@@ -846,8 +837,8 @@ namespace System.Net
cidr = null;
return;
}
- BigInteger? uintNetmask2 = null;
- bool parsed = IPNetwork.TryToBigInteger(netmask, out uintNetmask2);
+
+ bool parsed = IPNetwork.TryToBigInteger(netmask, out var uintNetmask2);
/// 20180217 lduchosal
/// impossible to reach code.
@@ -858,10 +849,9 @@ namespace System.Net
/// cidr = null;
/// return;
/// }
- BigInteger uintNetmask = (BigInteger)uintNetmask2;
+ var uintNetmask = (BigInteger)uintNetmask2;
- byte? cidr2 = null;
- IPNetwork.InternalToCidr(tryParse, uintNetmask, netmask.AddressFamily, out cidr2);
+ IPNetwork.InternalToCidr(tryParse, uintNetmask, netmask.AddressFamily, out var cidr2);
cidr = cidr2;
return;
@@ -951,8 +941,8 @@ namespace System.Net
return;
}
- BigInteger mask = IPNetwork.ToUint(cidr, family);
- IPAddress netmask2 = IPNetwork.ToIPAddress(mask, family);
+ var mask = IPNetwork.ToUint(cidr, family);
+ var netmask2 = IPNetwork.ToIPAddress(mask, family);
netmask = netmask2;
return;
@@ -990,7 +980,7 @@ namespace System.Net
/// <returns></returns>
public static uint BitsSet(IPAddress netmask)
{
- BigInteger uintNetmask = IPNetwork.ToBigInteger(netmask);
+ var uintNetmask = IPNetwork.ToBigInteger(netmask);
uint bits = IPNetwork.BitsSet(uintNetmask, netmask.AddressFamily);
return bits;
}
@@ -1013,7 +1003,7 @@ namespace System.Net
{
throw new ArgumentNullException(nameof(netmask));
}
- BigInteger uintNetmask = IPNetwork.ToBigInteger(netmask);
+ var uintNetmask = IPNetwork.ToBigInteger(netmask);
bool valid = IPNetwork.InternalValidNetmask(uintNetmask, netmask.AddressFamily);
return valid;
}
@@ -1042,7 +1032,7 @@ namespace System.Net
0x00
});
- BigInteger neg = ((~netmask) & (mask));
+ var neg = ((~netmask) & (mask));
bool isNetmask = ((neg + 1) & neg) == 0;
return isNetmask;
@@ -1068,7 +1058,7 @@ namespace System.Net
Array.Reverse(bytes2);
byte[] sized = Resize(bytes2, family);
- IPAddress ip = new IPAddress(sized);
+ var ip = new IPAddress(sized);
return ip;
}
@@ -1122,9 +1112,9 @@ namespace System.Net
return false;
}
- BigInteger uintNetwork = _network;
- BigInteger uintBroadcast = _broadcast;
- BigInteger uintAddress = IPNetwork.ToBigInteger(ipaddress);
+ var uintNetwork = _network;
+ var uintBroadcast = _broadcast;
+ var uintAddress = IPNetwork.ToBigInteger(ipaddress);
bool contains = (uintAddress >= uintNetwork
&& uintAddress <= uintBroadcast);
@@ -1146,11 +1136,11 @@ namespace System.Net
throw new ArgumentNullException(nameof(network2));
}
- BigInteger uintNetwork = _network;
- BigInteger uintBroadcast = _broadcast;
+ var uintNetwork = _network;
+ var uintBroadcast = _broadcast;
- BigInteger uintFirst = network2._network;
- BigInteger uintLast = network2._broadcast;
+ var uintFirst = network2._network;
+ var uintLast = network2._broadcast;
bool contains = (uintFirst >= uintNetwork
&& uintLast <= uintBroadcast);
@@ -1175,11 +1165,11 @@ namespace System.Net
throw new ArgumentNullException(nameof(network2));
}
- BigInteger uintNetwork = _network;
- BigInteger uintBroadcast = _broadcast;
+ var uintNetwork = _network;
+ var uintBroadcast = _broadcast;
- BigInteger uintFirst = network2._network;
- BigInteger uintLast = network2._broadcast;
+ var uintFirst = network2._network;
+ var uintLast = network2._broadcast;
bool overlap =
(uintFirst >= uintNetwork && uintFirst <= uintBroadcast)
@@ -1428,8 +1418,8 @@ namespace System.Net
return;
}
- IPNetwork first = (network1._network < network2._network) ? network1 : network2;
- IPNetwork last = (network1._network > network2._network) ? network1 : network2;
+ var first = (network1._network < network2._network) ? network1 : network2;
+ var last = (network1._network > network2._network) ? network1 : network2;
/// Starting from here :
/// network1 and network2 have the same cidr,
@@ -1449,10 +1439,10 @@ namespace System.Net
return;
}
- BigInteger uintSupernet = first._network;
+ var uintSupernet = first._network;
byte cidrSupernet = (byte)(first._cidr - 1);
- IPNetwork networkSupernet = new IPNetwork(uintSupernet, first._family, cidrSupernet);
+ var networkSupernet = new IPNetwork(uintSupernet, first._family, cidrSupernet);
if (networkSupernet._network != first._network)
{
if (trySupernet == false)
@@ -1491,8 +1481,7 @@ namespace System.Net
/// <returns></returns>
public static IPNetwork[] Supernet(IPNetwork[] ipnetworks)
{
- IPNetwork[] supernet;
- InternalSupernet(false, ipnetworks, out supernet);
+ InternalSupernet(false, ipnetworks, out var supernet);
return supernet;
}
@@ -1535,9 +1524,9 @@ namespace System.Net
return true;
}
- List<IPNetwork> supernetted = new List<IPNetwork>();
- List<IPNetwork> ipns = IPNetwork.Array2List(ipnetworks);
- Stack<IPNetwork> current = IPNetwork.List2Stack(ipns);
+ var supernetted = new List<IPNetwork>();
+ var ipns = IPNetwork.Array2List(ipnetworks);
+ var current = IPNetwork.List2Stack(ipns);
int previousCount = 0;
int currentCount = current.Count;
@@ -1547,8 +1536,8 @@ namespace System.Net
supernetted.Clear();
while (current.Count > 1)
{
- IPNetwork ipn1 = current.Pop();
- IPNetwork ipn2 = current.Peek();
+ var ipn1 = current.Pop();
+ var ipn2 = current.Peek();
IPNetwork outNetwork = null;
bool success = ipn1.TrySupernet(ipn2, out outNetwork);
@@ -1578,7 +1567,7 @@ namespace System.Net
private static Stack<IPNetwork> List2Stack(List<IPNetwork> list)
{
- Stack<IPNetwork> stack = new Stack<IPNetwork>();
+ var stack = new Stack<IPNetwork>();
list.ForEach(new Action<IPNetwork>(
delegate (IPNetwork ipn)
{
@@ -1590,7 +1579,7 @@ namespace System.Net
private static List<IPNetwork> Array2List(IPNetwork[] array)
{
- List<IPNetwork> ipns = new List<IPNetwork>();
+ var ipns = new List<IPNetwork>();
ipns.AddRange(array);
IPNetwork.RemoveNull(ipns);
ipns.Sort(new Comparison<IPNetwork>(
@@ -1642,14 +1631,12 @@ namespace System.Net
throw new ArgumentNullException(nameof(end));
}
- IPAddress startIP;
- if (!IPAddress.TryParse(start, out startIP))
+ if (!IPAddress.TryParse(start, out var startIP))
{
throw new ArgumentException("start");
}
- IPAddress endIP;
- if (!IPAddress.TryParse(end, out endIP))
+ if (!IPAddress.TryParse(end, out var endIP))
{
throw new ArgumentException("end");
}
@@ -1659,10 +1646,10 @@ namespace System.Net
throw new NotSupportedException("MixedAddressFamily");
}
- IPNetwork ipnetwork = new IPNetwork(0, startIP.AddressFamily, 0);
+ var ipnetwork = new IPNetwork(0, startIP.AddressFamily, 0);
for (byte cidr = 32; cidr >= 0; cidr--)
{
- IPNetwork wideSubnet = IPNetwork.Parse(start, cidr);
+ var wideSubnet = IPNetwork.Parse(start, cidr);
if (wideSubnet.Contains(endIP))
{
ipnetwork = wideSubnet;
@@ -1707,8 +1694,9 @@ namespace System.Net
}
- IPNetwork[] nnin = Array.FindAll<IPNetwork>(ipnetworks, new Predicate<IPNetwork>(
- delegate (IPNetwork ipnet) {
+ IPNetwork[] nnin = Array.FindAll(ipnetworks, new Predicate<IPNetwork>(
+ delegate (IPNetwork ipnet)
+ {
return ipnet != null;
}
));
@@ -1725,19 +1713,19 @@ namespace System.Net
if (nnin.Length == 1)
{
- IPNetwork ipn0 = nnin[0];
+ var ipn0 = nnin[0];
ipnetwork = ipn0;
return;
}
- Array.Sort<IPNetwork>(nnin);
- IPNetwork nnin0 = nnin[0];
- BigInteger uintNnin0 = nnin0._ipaddress;
+ Array.Sort(nnin);
+ var nnin0 = nnin[0];
+ var uintNnin0 = nnin0._ipaddress;
- IPNetwork nninX = nnin[nnin.Length - 1];
- IPAddress ipaddressX = nninX.Broadcast;
+ var nninX = nnin[nnin.Length - 1];
+ var ipaddressX = nninX.Broadcast;
- AddressFamily family = ipnetworks[0]._family;
+ var family = ipnetworks[0]._family;
foreach (var ipnx in ipnetworks)
{
if (ipnx._family != family)
@@ -1746,10 +1734,10 @@ namespace System.Net
}
}
- IPNetwork ipn = new IPNetwork(0, family, 0);
+ var ipn = new IPNetwork(0, family, 0);
for (byte cidr = nnin0._cidr; cidr >= 0; cidr--)
{
- IPNetwork wideSubnet = new IPNetwork(uintNnin0, family, cidr);
+ var wideSubnet = new IPNetwork(uintNnin0, family, cidr);
if (wideSubnet.Contains(ipaddressX))
{
ipn = wideSubnet;
@@ -1772,7 +1760,7 @@ namespace System.Net
public string Print()
{
- StringWriter sw = new StringWriter();
+ var sw = new StringWriter();
sw.WriteLine("IPNetwork : {0}", ToString());
sw.WriteLine("Network : {0}", Network);
@@ -1818,7 +1806,7 @@ namespace System.Net
cidr = 64;
return true;
}
- BigInteger uintIPAddress = IPNetwork.ToBigInteger(ipaddress);
+ var uintIPAddress = IPNetwork.ToBigInteger(ipaddress);
uintIPAddress = uintIPAddress >> 29;
if (uintIPAddress <= 3)
{