From dcbb6ee4ebe3c25b2492289659fd12a652f376df Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 4 Jan 2011 20:02:23 +1300 Subject: [PATCH] small tweak to HttpUtil - we don't support 1.1, so dont pretend we do; also, set WebClient.Proxy everywhere to null --- OpenRA.FileFormats/HttpUtil.cs | 2 +- OpenRA.Game/Server/MasterServerQuery.cs | 1 + .../ServerTraits/MasterServerPinger.cs | 31 ++++++++++--------- OpenRA.Utility/Command.cs | 2 +- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/OpenRA.FileFormats/HttpUtil.cs b/OpenRA.FileFormats/HttpUtil.cs index 8cda8adc13..e2a34d38df 100644 --- a/OpenRA.FileFormats/HttpUtil.cs +++ b/OpenRA.FileFormats/HttpUtil.cs @@ -29,7 +29,7 @@ namespace OpenRA.FileFormats var ns = s.GetStream(); var sw = new StreamWriter(ns); - sw.Write("GET {0} HTTP/1.1\r\nHost:{1}\r\n\r\n", uri.PathAndQuery, uri.Host); + sw.Write("GET {0} HTTP/1.0\r\nHost:{1}\r\n\r\n", uri.PathAndQuery, uri.Host); sw.Flush(); var br = new BinaryReader(ns); diff --git a/OpenRA.Game/Server/MasterServerQuery.cs b/OpenRA.Game/Server/MasterServerQuery.cs index 8131b36493..99d15c7c21 100755 --- a/OpenRA.Game/Server/MasterServerQuery.cs +++ b/OpenRA.Game/Server/MasterServerQuery.cs @@ -62,6 +62,7 @@ namespace OpenRA.Server static string GetData(Uri uri) { var wc = new WebClient(); + wc.Proxy = null; var data = wc.DownloadData(uri); return Encoding.UTF8.GetString(data); } diff --git a/OpenRA.Mods.RA/ServerTraits/MasterServerPinger.cs b/OpenRA.Mods.RA/ServerTraits/MasterServerPinger.cs index b3455fb9c8..1c0bfcf8f3 100644 --- a/OpenRA.Mods.RA/ServerTraits/MasterServerPinger.cs +++ b/OpenRA.Mods.RA/ServerTraits/MasterServerPinger.cs @@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA.Server public class MasterServerPinger : ServerTrait, ITick, INotifySyncLobbyInfo, IStartGame { const int MasterPingInterval = 60 * 3; // 3 minutes. server has a 5 minute TTL for games, so give ourselves a bit - // of leeway. + // of leeway. public int TickTimeout { get { return MasterPingInterval * 10000; } } public void Tick(S server) { @@ -29,10 +29,10 @@ namespace OpenRA.Mods.RA.Server lock (masterServerMessages) while (masterServerMessages.Count > 0) server.SendChat(null, masterServerMessages.Dequeue()); - + } - - + + public void LobbyInfoSynced(S server) { PingMasterServer(server); } public void GameStarted(S server) { PingMasterServer(server); } @@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA.Server static string masterServerUrl = Game.Settings.Server.MasterServer; static int externalPort = Game.Settings.Server.ExternalPort; static bool isInitialPing = true; - + static volatile bool isBusy; static Queue masterServerMessages = new Queue(); public static void PingMasterServer(S server) @@ -61,13 +61,14 @@ namespace OpenRA.Mods.RA.Server using (var wc = new WebClient()) { - wc.DownloadData( - masterServerUrl + url.F( - externalPort, Uri.EscapeUriString(server.Name), - server.GameStarted ? 2 : 1, // todo: post-game states, etc. - server.lobbyInfo.Clients.Count, - string.Join(",", server.lobbyInfo.GlobalSettings.Mods), - server.lobbyInfo.GlobalSettings.Map)); + wc.Proxy = null; + wc.DownloadData( + masterServerUrl + url.F( + externalPort, Uri.EscapeUriString(server.Name), + server.GameStarted ? 2 : 1, // todo: post-game states, etc. + server.lobbyInfo.Clients.Count, + string.Join(",", server.lobbyInfo.GlobalSettings.Mods), + server.lobbyInfo.GlobalSettings.Map)); if (isInitialPing) { @@ -77,11 +78,11 @@ namespace OpenRA.Mods.RA.Server } } } - catch(Exception ex) + catch (Exception ex) { Log.Write("server", ex.ToString()); - lock( masterServerMessages ) - masterServerMessages.Enqueue( "Master server communication failed." ); + lock (masterServerMessages) + masterServerMessages.Enqueue("Master server communication failed."); } isBusy = false; diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index 3c9ae4dff5..791cb787e5 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -118,11 +118,11 @@ namespace OpenRA.Utility string[] args = argValue.Split(','); string url = args[0]; WebClient wc = new WebClient(); + wc.Proxy = null; if (args.Length == 1) { wc.DownloadStringCompleted += DownloadStringCompleted; - wc.DownloadStringAsync(new Uri(url)); } else if (args.Length == 2)