From 82ab883ea279150645b7e76ae761a45cb02ac907 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Mon, 28 May 2007 23:32:05 +0000 Subject: [PATCH] * Escaped log messages properly when logging to DB * World map textures are now checked against DBNull before returning * MySQL now informs when it gets a connection * "Fastmode" support added to world map queries (MySQL-only), disabled by default. --- .../MySQLManager.cs | 14 ++++- .../GridManager.cs | 60 +++++++++++++------ 2 files changed, 54 insertions(+), 20 deletions(-) diff --git a/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLManager.cs b/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLManager.cs index 1f7413fd33..aee18b9609 100644 --- a/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLManager.cs +++ b/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLManager.cs @@ -33,6 +33,8 @@ namespace OpenGrid.Framework.Data.MySQL dbcon = new MySqlConnection(connectionString); dbcon.Open(); + + System.Console.WriteLine("MySQL connection established"); } catch (Exception e) { @@ -120,7 +122,15 @@ namespace OpenGrid.Framework.Data.MySQL retval.regionUserSendKey = (string)reader["regionUserSendKey"]; // World Map Addition - retval.regionMapTextureID = new libsecondlife.LLUUID((string)reader["regionMapTexture"]); + string tempRegionMap = reader["regionMapTexture"].ToString(); + if (tempRegionMap != "") + { + retval.regionMapTextureID = new libsecondlife.LLUUID(tempRegionMap); + } + else + { + retval.regionMapTextureID = new libsecondlife.LLUUID(); + } } else { @@ -209,7 +219,7 @@ namespace OpenGrid.Framework.Data.MySQL public bool insertLogRow(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage) { - string sql = "INSERT INTO logs (target, server, method, arguments, priority, message) VALUES ("; + string sql = "INSERT INTO logs (`target`, `server`, `method`, `arguments`, `priority`, `message`) VALUES "; sql += "(?target, ?server, ?method, ?arguments, ?priority, ?message)"; Dictionary parameters = new Dictionary(); diff --git a/OpenGridServices/OpenGridServices.GridServer/GridManager.cs b/OpenGridServices/OpenGridServices.GridServer/GridManager.cs index b73f24d4a2..74ce9734da 100644 --- a/OpenGridServices/OpenGridServices.GridServer/GridManager.cs +++ b/OpenGridServices/OpenGridServices.GridServer/GridManager.cs @@ -315,25 +315,49 @@ namespace OpenGridServices.GridServer response.Value = responseData; IList simProfileList = new ArrayList(); - SimProfileData simProfile; - for (int x = xmin; x < xmax; x++) - { - for (int y = ymin; y < ymax; y++) - { - simProfile = getRegion(Helpers.UIntsToLong((uint)(x * 256), (uint)(y * 256))); - if (simProfile != null) - { - Hashtable simProfileBlock = new Hashtable(); - simProfileBlock["x"] = x; - simProfileBlock["y"] = y; - simProfileBlock["name"] = simProfile.regionName; - simProfileBlock["access"] = 0; - simProfileBlock["region-flags"] = 0; - simProfileBlock["water-height"] = 20; - simProfileBlock["agents"] = 1; - simProfileBlock["map-image-id"] = simProfile.regionMapTextureID.ToString(); + bool fastMode = false; // MySQL Only - simProfileList.Add(simProfileBlock); + if (fastMode) + { + Dictionary neighbours = getRegions((uint)xmin, (uint)ymin, (uint)xmax, (uint)ymax); + + foreach (KeyValuePair aSim in neighbours) + { + Hashtable simProfileBlock = new Hashtable(); + simProfileBlock["x"] = aSim.Value.regionLocX; + simProfileBlock["y"] = aSim.Value.regionLocY; + simProfileBlock["name"] = aSim.Value.regionName; + simProfileBlock["access"] = 0; + simProfileBlock["region-flags"] = 0; + simProfileBlock["water-height"] = 20; + simProfileBlock["agents"] = 1; + simProfileBlock["map-image-id"] = aSim.Value.regionMapTextureID.ToString(); + + simProfileList.Add(simProfileBlock); + } + } + else + { + SimProfileData simProfile; + for (int x = xmin; x < xmax; x++) + { + for (int y = ymin; y < ymax; y++) + { + simProfile = getRegion(Helpers.UIntsToLong((uint)(x * 256), (uint)(y * 256))); + if (simProfile != null) + { + Hashtable simProfileBlock = new Hashtable(); + simProfileBlock["x"] = x; + simProfileBlock["y"] = y; + simProfileBlock["name"] = simProfile.regionName; + simProfileBlock["access"] = 0; + simProfileBlock["region-flags"] = 0; + simProfileBlock["water-height"] = 20; + simProfileBlock["agents"] = 1; + simProfileBlock["map-image-id"] = simProfile.regionMapTextureID.ToString(); + + simProfileList.Add(simProfileBlock); + } } } }