* 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.
zircon^2
Adam Frisby 2007-05-28 23:32:05 +00:00
parent 0ba587022b
commit 82ab883ea2
2 changed files with 54 additions and 20 deletions

View File

@ -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<string, string> parameters = new Dictionary<string, string>();

View File

@ -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<ulong, SimProfileData> neighbours = getRegions((uint)xmin, (uint)ymin, (uint)xmax, (uint)ymax);
foreach (KeyValuePair<ulong, SimProfileData> 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);
}
}
}
}