diff options
| author | Michael <[email protected]> | 2017-06-11 07:41:07 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-06-11 07:41:07 -0400 |
| commit | 0d75f701778a0900a58343c4c80c124279bc231f (patch) | |
| tree | 9715201319348184e2c10f5da9b3d6becb4c2bb7 | |
| parent | c3deaa23fffb7011efb2b5b0f7fc3e754d21f600 (diff) | |
| download | shiftos_thereturn-0d75f701778a0900a58343c4c80c124279bc231f.tar.gz shiftos_thereturn-0d75f701778a0900a58343c4c80c124279bc231f.tar.bz2 shiftos_thereturn-0d75f701778a0900a58343c4c80c124279bc231f.zip | |
skip server connection if server is offline
| -rw-r--r-- | ShiftOS_TheReturn/SaveSystem.cs | 25 | ||||
| -rw-r--r-- | ShiftOS_TheReturn/ServerManager.cs | 24 |
2 files changed, 40 insertions, 9 deletions
diff --git a/ShiftOS_TheReturn/SaveSystem.cs b/ShiftOS_TheReturn/SaveSystem.cs index 18f8f78..b9bef47 100644 --- a/ShiftOS_TheReturn/SaveSystem.cs +++ b/ShiftOS_TheReturn/SaveSystem.cs @@ -163,22 +163,29 @@ namespace ShiftOS.Engine bool guidReceived = false; ServerManager.GUIDReceived += (str) => { - //Connection successful! Stop waiting! - guidReceived = true; + //Connection successful! Stop waiting! + guidReceived = true; Console.WriteLine("[inetd] Connection successful."); }; try { - - ServerManager.Initiate(UserConfig.Get().DigitalSocietyAddress, UserConfig.Get().DigitalSocietyPort); - //This haults the client until the connection is successful. - while (ServerManager.thisGuid == new Guid()) + if (ServerManager.ServerOnline) { - Thread.Sleep(10); + ServerManager.Initiate(UserConfig.Get().DigitalSocietyAddress, UserConfig.Get().DigitalSocietyPort); + //This haults the client until the connection is successful. + while (ServerManager.thisGuid == new Guid()) + { + Thread.Sleep(10); + } + Console.WriteLine("[inetd] DHCP GUID recieved, finished setup"); + FinishBootstrap(); + } + else + { + Console.WriteLine("[inetd] No suitable network interface card found, skipping network connection."); + FinishBootstrap(); } - Console.WriteLine("[inetd] DHCP GUID recieved, finished setup"); - FinishBootstrap(); } catch (Exception ex) { diff --git a/ShiftOS_TheReturn/ServerManager.cs b/ShiftOS_TheReturn/ServerManager.cs index be4f086..00f9653 100644 --- a/ShiftOS_TheReturn/ServerManager.cs +++ b/ShiftOS_TheReturn/ServerManager.cs @@ -38,6 +38,7 @@ using System.Net.Sockets; using System.Diagnostics; using System.IO; using System.Reflection; +using System.Net.NetworkInformation; namespace ShiftOS.Engine { @@ -46,6 +47,29 @@ namespace ShiftOS.Engine /// </summary> public static class ServerManager { + + public static bool ServerOnline + { + get + { + try + { + Ping myPing = new Ping(); + String host = UserConfig.Get().DigitalSocietyAddress; + byte[] buffer = new byte[32]; + int timeout = 1000; + PingOptions pingOptions = new PingOptions(); + PingReply reply = myPing.Send(host, timeout, buffer, pingOptions); + return (reply.Status == IPStatus.Success); + } + catch (Exception) + { + return false; + } + } + } + + /// <summary> /// Print connection diagnostic information. /// </summary> |
