From 083d59613a39bb143c3abdcc84c89c5fedb26166 Mon Sep 17 00:00:00 2001 From: Scott_NZ Date: Sat, 6 Apr 2013 01:04:35 +1300 Subject: [PATCH] Better UPNP logging. Also fixes a compile error --- OpenRA.FileFormats/Support/Log.cs | 8 ++++---- OpenRA.Game/Game.cs | 31 +++++++++++++++++-------------- OpenRA.Game/OpenRA.Game.csproj | 2 +- OpenRA.Game/Server/Server.cs | 14 +++++++------- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/OpenRA.FileFormats/Support/Log.cs b/OpenRA.FileFormats/Support/Log.cs index d1be337801..1d5bcd4cf2 100755 --- a/OpenRA.FileFormats/Support/Log.cs +++ b/OpenRA.FileFormats/Support/Log.cs @@ -26,7 +26,7 @@ namespace OpenRA public static class Log { static string LogPathPrefix = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + Path.DirectorySeparatorChar; - static Dictionary channels = new Dictionary(); + public static readonly Dictionary Channels = new Dictionary(); public static string LogPath { @@ -47,7 +47,7 @@ namespace OpenRA public static void AddChannel(string channelName, string baseFilename) { - if (channels.ContainsKey(channelName)) return; + if (Channels.ContainsKey(channelName)) return; foreach (var filename in FilenamesForChannel(channelName, baseFilename)) try @@ -55,7 +55,7 @@ namespace OpenRA var writer = File.CreateText(filename); writer.AutoFlush = true; - channels.Add(channelName, + Channels.Add(channelName, new ChannelInfo() { Filename = filename, @@ -70,7 +70,7 @@ namespace OpenRA public static void Write(string channel, string format, params object[] args) { ChannelInfo info; - if (!channels.TryGetValue(channel, out info)) + if (!Channels.TryGetValue(channel, out info)) throw new Exception("Tried logging to non-existant channel " + channel); info.Writer.WriteLine(format, args); diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 4b1734bc15..484aff54c5 100755 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -264,14 +264,18 @@ namespace OpenRA Log.AddChannel("sync", "syncreport.log"); Log.AddChannel("server", "server.log"); - try { + try + { + NatUtility.Logger = Log.Channels["server"].Writer; + NatUtility.Verbose = true; NatUtility.DeviceFound += DeviceFound; NatUtility.DeviceLost += DeviceLost; - NatUtility.StartDiscovery(); - OpenRA.Log.Write("server", "NAT discovery started."); - } catch (Exception e) { - OpenRA.Log.Write("server", "Can't discover UPnP-enabled device: {0}", e); + Log.Write("server", "NAT discovery started."); + } + catch (Exception e) + { + Log.Write("server", "Can't discover UPnP-enabled device: {0}", e); Settings.Server.AllowUPnP = false; } @@ -287,27 +291,26 @@ namespace OpenRA InitializeWithMods(Settings.Game.Mods); } - public static void DeviceFound (object sender, DeviceEventArgs args) + public static void DeviceFound(object sender, DeviceEventArgs args) { natDevice = args.Device; - Log.Write ("server", "NAT device discovered."); - Log.Write ("server", "Type: {0}", natDevice.GetType ().Name); - Log.Write ("server", "Your external IP is: {0}", natDevice.GetExternalIP ()); + Log.Write("server", "NAT device discovered."); + Log.Write("server", "Type: {0}", natDevice.GetType()); + Log.Write("server", "Your external IP is: {0}", natDevice.GetExternalIP()); - foreach (Mapping mp in natDevice.GetAllMappings()) { - Log.Write ("server", "Existing port mapping: protocol={0}, public={1}, private={2}", mp.Protocol, mp.PublicPort, mp.PrivatePort); - } + foreach (var mp in natDevice.GetAllMappings()) + Log.Write("server", "Existing port mapping: protocol={0}, public={1}, private={2}", mp.Protocol, mp.PublicPort, mp.PrivatePort); Settings.Server.AllowUPnP = true; } - public static void DeviceLost (object sender, DeviceEventArgs args) + public static void DeviceLost(object sender, DeviceEventArgs args) { natDevice = args.Device; Log.Write("server", "NAT device Lost"); - Log.Write("server", "Type: {0}", natDevice.GetType().Name); + Log.Write("server", "Type: {0}", natDevice.GetType()); Settings.Server.AllowUPnP = false; } diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 5053d7c492..4e6b871090 100644 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -68,13 +68,13 @@ False ..\thirdparty\SharpFont.dll + False False mono.nat ..\thirdparty\Mono.Nat.dll - False ..\thirdparty\Tao\Tao.OpenAl.dll diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 79236160a1..20bae37b1a 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -128,7 +128,7 @@ namespace OpenRA.Server var timeout = ServerTraits.WithInterface().Min(t => t.TickTimeout); for( ; ; ) { - var checkRead = new ArrayList(); + var checkRead = new List(); checkRead.Add( listener.Server ); foreach( var c in conns ) checkRead.Add( c.socket ); foreach( var c in preConns ) checkRead.Add( c.socket ); @@ -140,7 +140,7 @@ namespace OpenRA.Server break; } - foreach( Socket s in checkRead ) + foreach( var s in checkRead ) if( s == listener.Server ) AcceptConnection(); else if (preConns.Count > 0) { @@ -181,13 +181,13 @@ namespace OpenRA.Server { try { - Mapping mapping = new Mapping (Protocol.Tcp, Settings.ExternalPort, Settings.ListenPort); + var mapping = new Mapping(Protocol.Tcp, Settings.ExternalPort, Settings.ListenPort); NatDevice.CreatePortMap(mapping); Log.Write("server", "Create port mapping: protocol={0}, public={1}, private={2}", mapping.Protocol, mapping.PublicPort, mapping.PrivatePort); } catch (Exception e) { - OpenRA.Log.Write("server", "Can not forward ports via UPnP: {0}", e); + Log.Write("server", "Can not forward ports via UPnP: {0}", e); Settings.AllowUPnP = false; } } @@ -196,13 +196,13 @@ namespace OpenRA.Server { try { - Mapping mapping = new Mapping (Protocol.Tcp, Settings.ExternalPort, Settings.ListenPort); - NatDevice.DeletePortMap (mapping); + var mapping = new Mapping(Protocol.Tcp, Settings.ExternalPort, Settings.ListenPort); + NatDevice.DeletePortMap(mapping); Log.Write("server", "Remove port mapping: protocol={0}, public={1}, private={2}", mapping.Protocol, mapping.PublicPort, mapping.PrivatePort); } catch (Exception e) { - OpenRA.Log.Write("server", "Can not remove UPnP portforwarding rules: {0}", e); + Log.Write("server", "Can not remove UPnP portforwarding rules: {0}", e); Settings.AllowUPnP = false; } }