This commit is contained in:
2025-02-16 05:54:29 +01:00
parent 3054db7c9b
commit bea758813d
4 changed files with 100 additions and 38 deletions

View File

@@ -3,7 +3,7 @@
<TargetFrameworks>.netstandard2.1; net6.0; net7.0; net8.0; net4.8;</TargetFrameworks> <TargetFrameworks>.netstandard2.1; net6.0; net7.0; net8.0; net4.8;</TargetFrameworks>
<ApplicationIcon>icon.ico</ApplicationIcon> <ApplicationIcon>icon.ico</ApplicationIcon>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<FileVersion>1.3.6</FileVersion> <FileVersion>1.3.7</FileVersion>
<Authors>EonaCat (Jeroen Saey)</Authors> <Authors>EonaCat (Jeroen Saey)</Authors>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Company>EonaCat (Jeroen Saey)</Company> <Company>EonaCat (Jeroen Saey)</Company>
@@ -24,7 +24,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<EVRevisionFormat>1.3.6+{chash:10}.{c:ymd}</EVRevisionFormat> <EVRevisionFormat>1.3.7+{chash:10}.{c:ymd}</EVRevisionFormat>
<EVDefault>true</EVDefault> <EVDefault>true</EVDefault>
<EVInfo>true</EVInfo> <EVInfo>true</EVInfo>
<EVTagMatch>v[0-9]*</EVTagMatch> <EVTagMatch>v[0-9]*</EVTagMatch>

View File

@@ -12,6 +12,7 @@ public class Syslog : IDisposable
{ {
private string _Hostname = "127.0.0.1"; private string _Hostname = "127.0.0.1";
private int _Port = 514; private int _Port = 514;
private bool IsConnected { get; set; }
internal UdpClient Udp; internal UdpClient Udp;
@@ -55,15 +56,24 @@ public class Syslog : IDisposable
public string Nickname { get; set; } public string Nickname { get; set; }
private void SetUdp() private void SetUdp()
{
try
{ {
DisposeUdp(); DisposeUdp();
Udp = new UdpClient(_Hostname, _Port); Udp = new UdpClient(_Hostname, _Port);
IsConnected = true;
}
catch
{
IsConnected = false;
}
} }
private void DisposeUdp() private void DisposeUdp()
{ {
if (Udp != null) if (Udp != null)
{ {
IsConnected = false;
Udp.Dispose(); Udp.Dispose();
Udp = null; Udp = null;
} }

View File

@@ -12,6 +12,7 @@ namespace EonaCat.Logger.Servers.Tcp
private int _Port = 514; private int _Port = 514;
internal TcpClient _tcp; internal TcpClient _tcp;
private bool IsConnected { get; set; }
public string Nickname { get; set; } public string Nickname { get; set; }
public string IpPort => _Hostname + ":" + _Port; public string IpPort => _Hostname + ":" + _Port;
@@ -51,15 +52,24 @@ namespace EonaCat.Logger.Servers.Tcp
} }
internal void SetTcp() internal void SetTcp()
{
try
{ {
DisposeTcp(); DisposeTcp();
_tcp = new TcpClient(_Hostname, _Port); _tcp = new TcpClient(_Hostname, _Port);
IsConnected = true;
}
catch
{
IsConnected = false;
}
} }
internal void DisposeTcp() internal void DisposeTcp()
{ {
if (_tcp != null) if (_tcp != null)
{ {
IsConnected = false;
_tcp.Close(); _tcp.Close();
_tcp.Dispose(); _tcp.Dispose();
_tcp = null; _tcp = null;
@@ -84,10 +94,18 @@ namespace EonaCat.Logger.Servers.Tcp
return; return;
} }
if (!IsConnected)
{
SetTcp();
}
if (IsConnected)
{
using var stream = _tcp.GetStream(); using var stream = _tcp.GetStream();
await stream.WriteAsync(data, 0, data.Length); await stream.WriteAsync(data, 0, data.Length);
await stream.FlushAsync(); await stream.FlushAsync();
} }
}
internal async Task WriteAsync(string data) internal async Task WriteAsync(string data)
{ {
@@ -101,11 +119,19 @@ namespace EonaCat.Logger.Servers.Tcp
return; return;
} }
if (!IsConnected)
{
SetTcp();
}
if (IsConnected)
{
var sendData = Encoding.UTF8.GetBytes(data); var sendData = Encoding.UTF8.GetBytes(data);
using var stream = _tcp.GetStream(); using var stream = _tcp.GetStream();
await stream.WriteAsync(sendData, 0, sendData.Length); await stream.WriteAsync(sendData, 0, sendData.Length);
await stream.FlushAsync(); await stream.FlushAsync();
} }
}
~Tcp() ~Tcp()
{ {

View File

@@ -13,6 +13,7 @@ namespace EonaCat.Logger.Servers.Udp
private int _Port = 514; private int _Port = 514;
internal UdpClient _udp; internal UdpClient _udp;
private bool IsConnected { get; set; }
public string Nickname { get; set; } public string Nickname { get; set; }
public string IpPort => _Hostname + ":" + _Port; public string IpPort => _Hostname + ":" + _Port;
@@ -52,15 +53,24 @@ namespace EonaCat.Logger.Servers.Udp
} }
internal void SetUdp() internal void SetUdp()
{
try
{ {
DisposeUdp(); DisposeUdp();
_udp = new UdpClient(_Hostname, _Port); _udp = new UdpClient(_Hostname, _Port);
IsConnected = true;
}
catch
{
IsConnected = false;
}
} }
internal void DisposeUdp() internal void DisposeUdp()
{ {
if (_udp != null) if (_udp != null)
{ {
IsConnected = false;
_udp.Dispose(); _udp.Dispose();
_udp = null; _udp = null;
} }
@@ -79,6 +89,13 @@ namespace EonaCat.Logger.Servers.Udp
return; return;
} }
if (!IsConnected)
{
SetUdp();
}
if (IsConnected)
{
_udp.DontFragment = dontFragment; _udp.DontFragment = dontFragment;
int maxChunkSize = MaxUdpPacketSize; int maxChunkSize = MaxUdpPacketSize;
@@ -94,6 +111,7 @@ namespace EonaCat.Logger.Servers.Udp
offset += chunkSize; offset += chunkSize;
} }
} }
}
internal async Task WriteAsync(string data, bool dontFragment = false) internal async Task WriteAsync(string data, bool dontFragment = false)
{ {
@@ -102,6 +120,13 @@ namespace EonaCat.Logger.Servers.Udp
return; return;
} }
if (!IsConnected)
{
SetUdp();
}
if (IsConnected)
{
var sendData = Encoding.UTF8.GetBytes(data); var sendData = Encoding.UTF8.GetBytes(data);
_udp.DontFragment = dontFragment; _udp.DontFragment = dontFragment;
@@ -118,6 +143,7 @@ namespace EonaCat.Logger.Servers.Udp
offset += chunkSize; offset += chunkSize;
} }
} }
}
~Udp() ~Udp()
{ {