update to GeoIP2 and parse the database only once

closes #4227
This commit is contained in:
Matthias Mailänder
2014-02-15 19:12:57 +01:00
parent c5ccb0ef4a
commit 9099e987d3
23 changed files with 54 additions and 6015 deletions

View File

@@ -15,6 +15,7 @@ using System.IO;
using System.Linq;
using System.Net;
using OpenRA.FileSystem;
using MaxMind.GeoIP2;
using OpenRA.GameRules;
using OpenRA.Graphics;
using OpenRA.Network;
@@ -42,6 +43,8 @@ namespace OpenRA
public static Renderer Renderer;
public static bool HasInputFocus = false;
public static DatabaseReader GeoIpDatabase;
public static void JoinServer(string host, int port, string password)
{
JoinInner(new OrderManager(host, port, password,
@@ -291,6 +294,7 @@ namespace OpenRA
Log.AddChannel("server", "server.log");
Log.AddChannel("sound", "sound.log");
Log.AddChannel("graphics", "graphics.log");
Log.AddChannel("geoip", "geoip.log");
if (Settings.Server.DiscoverNatDevices)
UPnP.TryNatDiscovery();
@@ -300,6 +304,15 @@ namespace OpenRA
Settings.Server.AllowPortForward = false;
}
try
{
GeoIpDatabase = new DatabaseReader("GeoLite2-Country.mmdb");
}
catch (Exception e)
{
Log.Write("geoip", "DatabaseReader failed: {0}", e);
}
GlobalFileSystem.Mount("."); // Needed to access shaders
var renderers = new[] { Settings.Graphics.Renderer, "Sdl2", "Gl", "Cg", null };
foreach (var r in renderers)