private void SaveMAC(string uncPath)
{
String macAddress;
byte[] hwAddress;
WakeOnLanManager wakeOnLanManager = new WakeOnLanManager();
IPAddress ipAddress = null;
string hostName = Util.Utils.GetServerNameFromUNCPath(uncPath);
using (Profile.Settings xmlreader = new MPSettings())
{
macAddress = xmlreader.GetValueAsString("macAddress", hostName, null);
}
if (wakeOnLanManager.Ping(hostName, 100) && !string.IsNullOrEmpty(macAddress))
{
Log.Debug("WakeUpServer: The {0} server already started and mac address is learnt!", hostName);
return;
}
// Check if we already have a valid IP address stored,
// otherwise try to resolve the IP address
if (!IPAddress.TryParse(hostName, out ipAddress))
{
// Get IP address of the server
try
{
IPAddress[] ips;
ips = Dns.GetHostAddresses(hostName);
Log.Debug("WakeUpServer: WOL - GetHostAddresses({0}) returns:", hostName);
foreach (IPAddress ip in ips)
{
Log.Debug(" {0}", ip);
ipAddress = ip;
// Check for valid IP address
if (ipAddress != null)
{
// Update the MAC address if possible
hwAddress = wakeOnLanManager.GetHardwareAddress(ipAddress);
if (wakeOnLanManager.IsValidEthernetAddress(hwAddress))
{
Log.Debug("WakeUpServer: WOL - Valid auto MAC address: {0:x}:{1:x}:{2:x}:{3:x}:{4:x}:{5:x}"
, hwAddress[0], hwAddress[1], hwAddress[2], hwAddress[3], hwAddress[4], hwAddress[5]);
// Store MAC address
macAddress = BitConverter.ToString(hwAddress).Replace("-", ":");
Log.Debug("WakeUpServer: WOL - Store MAC address: {0}", macAddress);
using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.MPSettings())
{
xmlwriter.SetValue("macAddress", hostName, macAddress);
}
}
else
{
Log.Debug("WakeUpServer: WOL - Not a valid IPv4 address: {0}", ipAddress);
}
}
}
}
catch (Exception ex)
{
Log.Error("WakeUpServer: WOL - Failed GetHostAddress - {0}", ex.Message);
}
}
}
serverName = Util.Utils.GetServerNameFromUNCPath(uncPath);
WakeupUtils.HandleWakeUpServer(serverName, wolTimeout);
None whatsoever - you are the main man and how could I deny a wounded soldierI suggest we move the whole section to http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/18_Contribute/6_Plugins or even http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/18_Contribute/6_Plugins/Plugin_Developer's_Guide
any objections?