36 lines
820 B
C#
36 lines
820 B
C#
using NetCoreServer.Syslog;
|
|
using System.Net;
|
|
using System.Net.Sockets;
|
|
|
|
namespace Salmon.Service.Watchers;
|
|
|
|
public class SyslogServer
|
|
: Base
|
|
, ISyslogMessageHandler
|
|
{
|
|
public int Port { get; set; } = 514;
|
|
|
|
NetCoreServer.Syslog.SyslogServer? Server { get; set; } = null;
|
|
|
|
public override void OnStart()
|
|
{
|
|
Server = new(Port, NetworkProtocol.UDP, IPAddress.Any, this);
|
|
Server.Start();
|
|
}
|
|
|
|
public override void OnStop()
|
|
{
|
|
Server.Stop();
|
|
}
|
|
|
|
public void OnError(SocketError error)
|
|
{
|
|
}
|
|
|
|
public void OnReceived(EndPoint? remoteEndPoint, byte[] buffer, long offset, long size)
|
|
{
|
|
byte[] data = new byte[size];
|
|
Array.Copy(buffer, offset, data, 0, size);
|
|
string message = System.Text.Encoding.UTF8.GetString(data);
|
|
}
|
|
} |