pull/1/head
Ogoun 5 years ago
parent 446a2ecbc4
commit 9aded11788

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
@ -6,7 +6,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.112" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.112.1" />
</ItemGroup>
<ItemGroup>

@ -19,7 +19,7 @@
<ItemGroup>
<PackageReference Include="System.Data.Common" Version="4.3.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.1" />
<PackageReference Include="System.Security.Permissions" Version="4.7.0" />
</ItemGroup>

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
@ -14,8 +14,8 @@ Based on System.Data.SQLite.Core</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.112" />
<PackageReference Include="ZeroLevel" Version="3.1.9" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.112.1" />
<PackageReference Include="ZeroLevel" Version="3.3.2" />
</ItemGroup>
<ItemGroup>

@ -122,6 +122,7 @@ namespace ZeroLevel.Serialization
public void SerializeIPAddress()
{
var comparator = new Func<IPAddress, IPAddress, bool>((left, right) => NetUtils.Compare(left, right) == 0);
MakePrimitiveTest<IPAddress>(null, comparator);
MakePrimitiveTest<IPAddress>(IPAddress.Any, comparator);
MakePrimitiveTest<IPAddress>(IPAddress.Broadcast, comparator);
MakePrimitiveTest<IPAddress>(IPAddress.IPv6Any, comparator);
@ -136,6 +137,7 @@ namespace ZeroLevel.Serialization
public void SerializeIPEndPoint()
{
var comparator = new Func<IPEndPoint, IPEndPoint, bool>((left, right) => NetUtils.Compare(left, right) == 0);
MakePrimitiveTest<IPEndPoint>(null, comparator);
MakePrimitiveTest<IPEndPoint>(new IPEndPoint(IPAddress.Any, 1), comparator);
MakePrimitiveTest<IPEndPoint>(new IPEndPoint(IPAddress.Broadcast, 600), comparator);
MakePrimitiveTest<IPEndPoint>(new IPEndPoint(IPAddress.IPv6Any, IPEndPoint.MaxPort), comparator);

@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>

@ -13,6 +13,11 @@ namespace ZeroLevel.Network
void Set(string key, string type, string group, IPEndPoint endpoint);
void Set(string key, string type, string group, IEnumerable<IPEndPoint> endpoints);
bool ContainsKey(string key);
bool ContainsType(string type);
bool ContainsGroup(string group);
void Remove(string key);
void Remove(IPEndPoint endpoint);
IEnumerable<KeyValuePair<string, IPEndPoint>> GetAll();

@ -69,7 +69,7 @@ namespace ZeroLevel.Network
}
catch (Exception ex)
{
Log.SystemError(ex, $"[SocketClient.ctor] connection fault. Endpoint: {Endpoint.Address}:{Endpoint.Port}");
Log.SystemError(ex, $"[SocketClient.ctor] connection fault. Endpoint: {ep.Address}:{ep.Port}");
Broken();
return;
}

@ -36,6 +36,7 @@ namespace ZeroLevel.Network
public static bool TestConnection(IPEndPoint endpoint, int timeout = 100)
{
if (endpoint == null) return false;
using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
socket.SetIPProtectionLevel(IPProtectionLevel.Unrestricted);
@ -72,6 +73,10 @@ namespace ZeroLevel.Network
public static int Compare(this IPEndPoint x, IPEndPoint y)
{
if (x == null && y == null) return 0;
if (x == null) return 1;
if (y == null) return -1;
var xx = x.Address.ToString();
var yy = y.Address.ToString();
var result = string.CompareOrdinal(xx, yy);
@ -80,6 +85,10 @@ namespace ZeroLevel.Network
public static int Compare(this IPAddress x, IPAddress y)
{
if (x == null && y == null) return 0;
if (x == null) return 1;
if (y == null) return -1;
var xx = x.ToString();
var yy = y.ToString();
return string.CompareOrdinal(xx, yy);
@ -87,6 +96,8 @@ namespace ZeroLevel.Network
public static IPEndPoint CreateIPEndPoint(string endPoint)
{
if (string.IsNullOrWhiteSpace(endPoint)) return null;
string[] ep = endPoint.Split(':');
if (ep.Length < 2) throw new FormatException("Invalid endpoint format");
IPAddress ip;

@ -228,6 +228,24 @@ namespace ZeroLevel.Network
}
}
public bool ContainsKey(string key) => _tableByKey.ContainsKey(key);
public bool ContainsType(string type) => _tableByTypes.ContainsKey(type);
public bool ContainsGroup(string group) => _tableByGroups.ContainsKey(group);
public void Remove(string key)
{
if (_tableByKey.ContainsKey(key))
{
var eps = _tableByKey[key].Source.ToList();
foreach (var ep in eps)
{
RemoveLocked(ep);
}
}
}
public void Remove(IPEndPoint endpoint)
{
_lock.EnterWriteLock();

@ -202,17 +202,27 @@ namespace ZeroLevel.Services.Serialization
}
public IPAddress ReadIP()
{
var exists = ReadByte();
if (exists == 1)
{
var addr = ReadBytes();
return new IPAddress(addr);
}
return null;
}
public IPEndPoint ReadIPEndpoint()
{
var exists = ReadByte();
if (exists == 1)
{
var addr = ReadIP();
var port = ReadInt32();
return new IPEndPoint(addr, port);
}
return null;
}
/// <summary>
/// Check if data reading is outside the stream

@ -182,14 +182,30 @@ namespace ZeroLevel.Services.Serialization
public void WriteIP(IPAddress ip)
{
if (ip == null)
{
WriteByte(0);
}
else
{
WriteByte(1);
WriteBytes(ip.GetAddressBytes());
}
}
public void WriteIPEndpoint(IPEndPoint endpoint)
{
if (endpoint == null)
{
WriteByte(0);
}
else
{
WriteByte(1);
WriteIP(endpoint.Address);
WriteInt32(endpoint.Port);
}
}
public byte[] Complete()
{

@ -37,11 +37,11 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Buffers" Version="4.5.0" />
<PackageReference Include="System.Memory" Version="4.5.3" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.0" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.4" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.7.0" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.3" />
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
</ItemGroup>
<ItemGroup>

Loading…
Cancel
Save

Powered by TurnKey Linux.