private static async Task <int> ExecuteInternalAsync( RootCommandSettings settings) { if (!NetworkInformationHelper.HasConnection()) { System.Console.WriteLine("This tool requires internet connection!"); return(ConsoleExitStatusCodes.Failure); } if (settings.IsOptionValueTrue(settings.Version)) { try { HandleVersionOption(); } catch { return(ConsoleExitStatusCodes.Failure); } } await Task.Delay(1); return(ConsoleExitStatusCodes.Success); }
/// <summary> /// Tries to resolve the hardware address of the server. /// </summary> protected void UpdateServerAddress() { lock (_addressUpdateSync) { if (_isUpdatingAddress) { //Address updating already in progress return; } _isUpdatingAddress = true; } try { IPAddress localAddress; IPAddress serverAddress; if (!TryGetServerIPAddress(out localAddress, out serverAddress)) { return; } if (IPAddress.IsLoopback(serverAddress)) { ServiceRegistration.Get <ILogger>().Debug("WakeOnLanClient: Not configuring wake on lan for loopback address '{0}', server is located on the same machine", serverAddress); SaveWakeOnLanAddress(null); return; } byte[] macAddress; if (NetworkInformationHelper.TryGetRemoteHardwareAddress(localAddress, serverAddress, out macAddress)) { ServiceRegistration.Get <ILogger>().Info("WakeOnLanClient: Updating server hardware address '{0}' for IP address '{1}'", BitConverter.ToString(macAddress), serverAddress); SaveWakeOnLanAddress(new WakeOnLanAddress() { IPAddress = serverAddress.ToString(), HardwareAddress = macAddress }); return; } ServiceRegistration.Get <ILogger>().Warn("WakeOnLanClient: Unable to determine hardware address for IP address '{0}'", serverAddress); } catch (Exception ex) { ServiceRegistration.Get <ILogger>().Error("WakeOnLanClient: Error determining server hardware address", ex); } finally { lock (_addressUpdateSync) _isUpdatingAddress = false; } }