diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 2af79c6235..1ec8a62193 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -154,7 +154,7 @@ namespace OpenRA internal static void CreateServer() { // todo: LobbyInfo is the wrong place for this. - Server.Server.ServerMain(Settings.GameName, Settings.ListenPort, + Server.Server.ServerMain(Settings.InternetServer, Settings.GameName, Settings.ListenPort, Settings.ExternalPort, LobbyInfo.GlobalSettings.Mods); JoinServer(IPAddress.Loopback.ToString(), Settings.ListenPort); diff --git a/OpenRA.Game/GameRules/UserSettings.cs b/OpenRA.Game/GameRules/UserSettings.cs index dee8799c52..7f15e27712 100644 --- a/OpenRA.Game/GameRules/UserSettings.cs +++ b/OpenRA.Game/GameRules/UserSettings.cs @@ -48,6 +48,7 @@ namespace OpenRA.GameRules public readonly string GameName = "OpenRA Game"; public readonly int ListenPort = 1234; public readonly int ExternalPort = 1234; + public readonly bool InternetServer = true; // Gameplay options // TODO: These need to die diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 849c1f1a9e..f157f2210e 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -50,9 +50,11 @@ namespace OpenRA.Server const int MasterPingInterval = 60 * 3; // 3 minutes. server has a 5 minute TTL for games, so give ourselves a bit // of leeway. static int lastPing = 0; + static bool isInternetServer; - public static void ServerMain(string name, int port, int extport, string[] mods) + public static void ServerMain(bool internetServer, string name, int port, int extport, string[] mods) { + isInternetServer = internetServer; listener = new TcpListener(IPAddress.Any, port); initialMods = mods; Name = name; @@ -556,7 +558,7 @@ namespace OpenRA.Server static void PingMasterServer() { - if (wc.IsBusy) return; + if (wc.IsBusy || !isInternetServer) return; wc.DownloadDataAsync(new Uri( "http://open-ra.org/master/ping.php?port={0}&name={1}&state={2}&players={3}&mods={4}&map={5}".F(