private Boolean SendEventByUDP(String message, String eventLogName, EventLogEntry eventLogEntry, Filter filter)
{
IPAddress[] ServersAddress;
// Create syslog tag and remove syslog message accents
Int32 pri = (int)Facility[filter.SyslogFacility.ToLower()] * 8 + (int)Level[filter.SyslogLevel.ToLower()];
String body = "<" + pri + ">" + eventLogEntry.MachineName + " " + message;
// Convert final message in bytes
byte[] rawMsg = Encoding.Default.GetBytes(body);
try
{
ServersAddress = Dns.GetHostAddresses(this._ServerAddress);
String temp = ServersAddress.GetValue(0).ToString();
for (int i = 0; i < ServersAddress.Length; i++)
{
UdpClient udp = new UdpClient(ServersAddress.GetValue(i).ToString(), this._ServerPort);
udp.Send(rawMsg, rawMsg.Length);
this._Debug.Write("Syslog Server", "Event send to: " + ServersAddress.GetValue(i).ToString() + " with message: " + message, DateTime.Now, 2);
udp.Close();
udp = null;
}
}
catch (SocketException e)
{
this._Debug.Write("Syslog Server", "SocketException caught because: " + e.Message, DateTime.Now, 1);
return false;
}
catch (ArgumentNullException e)
{
this._Debug.Write("Syslog Server", "ArgumentNullException caught because: " + e.Message, DateTime.Now, 1);
return false;
}
catch (ArgumentOutOfRangeException e)
{
this._Debug.Write("Syslog Server", "ArgumentOutOfRangeException caught because: " + e.Message, DateTime.Now, 1);
return false;
}
catch (ObjectDisposedException e)
{
this._Debug.Write("Syslog Server", "ObjectDisposedException caught because: " + e.Message, DateTime.Now, 1);
return false;
}
catch (InvalidOperationException e)
{
this._Debug.Write("Syslog Server", "InvalidOperationException caught because: " + e.Message, DateTime.Now, 1);
return false;
}
return true;
}