From 646bbbc84b8010e0dacbeed5342cdb045f46cc49 Mon Sep 17 00:00:00 2001
From: MW
Date: Wed, 27 Jun 2007 15:28:52 +0000
Subject: Some work on restructuring the namespaces / project names. Note this
doesn't compile yet as not all the code has been changed to use the new
namespaces. Am committing it now for feedback on the namespaces.
---
OpenSim/Framework/Data.MySQL/MySQLGridData.cs | 285 ++++++++++
OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs | 309 +++++++++++
OpenSim/Framework/Data.MySQL/MySQLLogData.cs | 107 ++++
OpenSim/Framework/Data.MySQL/MySQLManager.cs | 609 +++++++++++++++++++++
OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 257 +++++++++
.../Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 117 ++++
.../OpenSim.Framework.Data.MySQL.csproj.user | 12 +
.../Data.MySQL/Properties/AssemblyInfo.cs | 35 ++
8 files changed, 1731 insertions(+)
create mode 100644 OpenSim/Framework/Data.MySQL/MySQLGridData.cs
create mode 100644 OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
create mode 100644 OpenSim/Framework/Data.MySQL/MySQLLogData.cs
create mode 100644 OpenSim/Framework/Data.MySQL/MySQLManager.cs
create mode 100644 OpenSim/Framework/Data.MySQL/MySQLUserData.cs
create mode 100644 OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
create mode 100644 OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user
create mode 100644 OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
new file mode 100644
index 0000000..4d6cf63
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
@@ -0,0 +1,285 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenGrid.Framework.Data;
+
+namespace OpenGrid.Framework.Data.MySQL
+{
+ ///
+ /// A MySQL Interface for the Grid Server
+ ///
+ public class MySQLGridData : IGridData
+ {
+ ///
+ /// MySQL Database Manager
+ ///
+ private MySQLManager database;
+
+ ///
+ /// Initialises the Grid Interface
+ ///
+ public void Initialise()
+ {
+ IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+ string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+ string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+ string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+ string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+ string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+ string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+ database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+ }
+
+ ///
+ /// Shuts down the grid interface
+ ///
+ public void Close()
+ {
+ database.Close();
+ }
+
+ ///
+ /// Returns the plugin name
+ ///
+ /// Plugin name
+ public string getName()
+ {
+ return "MySql OpenGridData";
+ }
+
+ ///
+ /// Returns the plugin version
+ ///
+ /// Plugin version
+ public string getVersion()
+ {
+ return "0.1";
+ }
+
+ ///
+ /// Returns all the specified region profiles within coordates -- coordinates are inclusive
+ ///
+ /// Minimum X coordinate
+ /// Minimum Y coordinate
+ /// Maximum X coordinate
+ /// Maximum Y coordinate
+ ///
+ public SimProfileData[] GetProfilesInRange(uint xmin, uint ymin, uint xmax, uint ymax)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?xmin"] = xmin.ToString();
+ param["?ymin"] = ymin.ToString();
+ param["?xmax"] = xmax.ToString();
+ param["?ymax"] = ymax.ToString();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE locX >= ?xmin AND locX <= ?xmax AND locY >= ?ymin AND locY <= ?ymax", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ SimProfileData row;
+
+ List rows = new List();
+
+ while ((row = database.readSimRow(reader)) != null)
+ {
+ rows.Add(row);
+ }
+ reader.Close();
+ result.Dispose();
+
+ return rows.ToArray();
+
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a sim profile from it's location
+ ///
+ /// Region location handle
+ /// Sim profile
+ public SimProfileData GetProfileByHandle(ulong handle)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?handle"] = handle.ToString();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE regionHandle = ?handle", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ SimProfileData row = database.readSimRow(reader);
+ reader.Close();
+ result.Dispose();
+
+ return row;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a sim profile from it's UUID
+ ///
+ /// The region UUID
+ /// The sim profile
+ public SimProfileData GetProfileByLLUUID(libsecondlife.LLUUID uuid)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = uuid.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ SimProfileData row = database.readSimRow(reader);
+ reader.Close();
+ result.Dispose();
+
+ return row;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Adds a new profile to the database
+ ///
+ /// The profile to add
+ /// Successful?
+ public DataResponse AddProfile(SimProfileData profile)
+ {
+ lock (database)
+ {
+ if (database.insertRegion(profile))
+ {
+ return DataResponse.RESPONSE_OK;
+ }
+ else
+ {
+ return DataResponse.RESPONSE_ERROR;
+ }
+ }
+ }
+
+ ///
+ /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
+ ///
+ /// The UUID of the challenger
+ /// The attempted regionHandle of the challenger
+ /// The secret
+ /// Whether the secret and regionhandle match the database entry for UUID
+ public bool AuthenticateSim(libsecondlife.LLUUID uuid, ulong handle, string authkey)
+ {
+ bool throwHissyFit = false; // Should be true by 1.0
+
+ if (throwHissyFit)
+ throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
+
+ SimProfileData data = GetProfileByLLUUID(uuid);
+
+ return (handle == data.regionHandle && authkey == data.regionSecret);
+ }
+
+ ///
+ /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
+ ///
+ /// This requires a security audit.
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool AuthenticateSim(libsecondlife.LLUUID uuid, ulong handle, string authhash, string challenge)
+ {
+ System.Security.Cryptography.SHA512Managed HashProvider = new System.Security.Cryptography.SHA512Managed();
+ System.Text.ASCIIEncoding TextProvider = new ASCIIEncoding();
+
+ byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
+ byte[] hash = HashProvider.ComputeHash(stream);
+
+ return false;
+ }
+
+ public ReservationData GetReservationAtPoint(uint x, uint y)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?x"] = x.ToString();
+ param["?y"] = y.ToString();
+ System.Data.IDbCommand result = database.Query("SELECT * FROM reservations WHERE resXMin <= ?x AND resXMax >= ?x AND resYMin <= ?y AND resYMax >= ?y", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ ReservationData row = database.readReservationRow(reader);
+ reader.Close();
+ result.Dispose();
+
+ return row;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+ }
+
+
+}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
new file mode 100644
index 0000000..fb429e4
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
@@ -0,0 +1,309 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+
+namespace OpenGrid.Framework.Data.MySQL
+{
+ ///
+ /// A MySQL interface for the inventory server
+ ///
+ class MySQLInventoryData : IInventoryData
+ {
+ ///
+ /// The database manager
+ ///
+ public MySQLManager database;
+
+ ///
+ /// Loads and initialises this database plugin
+ ///
+ public void Initialise()
+ {
+ IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+ string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+ string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+ string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+ string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+ string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+ string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+ database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+ }
+
+ ///
+ /// The name of this DB provider
+ ///
+ /// Name of DB provider
+ public string getName()
+ {
+ return "MySQL Inventory Data Interface";
+ }
+
+ ///
+ /// Closes this DB provider
+ ///
+ public void Close()
+ {
+ // Do nothing.
+ }
+
+ ///
+ /// Returns the version of this DB provider
+ ///
+ /// A string containing the DB provider
+ public string getVersion()
+ {
+ return "0.1";
+ }
+
+ ///
+ /// Returns a list of items in a specified folder
+ ///
+ /// The folder to search
+ /// A list containing inventory items
+ public List getInventoryInFolder(LLUUID folderID)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = folderID.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ List items = database.readInventoryItems(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ return items;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a list of the root folders within a users inventory
+ ///
+ /// The user whos inventory is to be searched
+ /// A list of folder objects
+ public List getUserRootFolders(LLUUID user)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = user.ToStringHyphenated();
+ param["?zero"] = LLUUID.Zero.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ List items = database.readInventoryFolders(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ return items;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a list of folders in a users inventory contained within the specified folder
+ ///
+ /// The folder to search
+ /// A list of inventory folders
+ public List getInventoryFolders(LLUUID parentID)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = parentID.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ List items = database.readInventoryFolders(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ return items;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a specified inventory item
+ ///
+ /// The item to return
+ /// An inventory item
+ public InventoryItemBase getInventoryItem(LLUUID item)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = item.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ List items = database.readInventoryItems(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ if (items.Count > 0)
+ {
+ return items[0];
+ }
+ else
+ {
+ return null;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a specified inventory folder
+ ///
+ /// The folder to return
+ /// A folder class
+ public InventoryFolderBase getInventoryFolder(LLUUID folder)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = folder.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ List items = database.readInventoryFolders(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ if (items.Count > 0)
+ {
+ return items[0];
+ }
+ else
+ {
+ return null;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Adds a specified item to the database
+ ///
+ /// The inventory item
+ public void addInventoryItem(InventoryItemBase item)
+ {
+ lock (database)
+ {
+ database.insertItem(item);
+ }
+ }
+
+ ///
+ /// Updates the specified inventory item
+ ///
+ /// Inventory item to update
+ public void updateInventoryItem(InventoryItemBase item)
+ {
+ addInventoryItem(item);
+ }
+
+ ///
+ /// Creates a new inventory folder
+ ///
+ /// Folder to create
+ public void addInventoryFolder(InventoryFolderBase folder)
+ {
+ lock (database)
+ {
+ database.insertFolder(folder);
+ }
+ }
+
+ ///
+ /// Updates an inventory folder
+ ///
+ /// Folder to update
+ public void updateInventoryFolder(InventoryFolderBase folder)
+ {
+ addInventoryFolder(folder);
+ }
+ }
+}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
new file mode 100644
index 0000000..c88b39f
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenGrid.Framework.Data.MySQL
+{
+ ///
+ /// An interface to the log database for MySQL
+ ///
+ class MySQLLogData : ILogData
+ {
+ ///
+ /// The database manager
+ ///
+ public MySQLManager database;
+
+ ///
+ /// Artificial constructor called when the plugin is loaded
+ ///
+ public void Initialise()
+ {
+ IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+ string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+ string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+ string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+ string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+ string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+ string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+ database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+ }
+
+ ///
+ /// Saves a log item to the database
+ ///
+ /// The daemon triggering the event
+ /// The target of the action (region / agent UUID, etc)
+ /// The method call where the problem occured
+ /// The arguments passed to the method
+ /// How critical is this?
+ /// The message to log
+ public void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage)
+ {
+ try
+ {
+ database.insertLogRow(serverDaemon, target, methodCall, arguments, priority, logMessage);
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ }
+ }
+
+ ///
+ /// Returns the name of this DB provider
+ ///
+ /// A string containing the DB provider name
+ public string getName()
+ {
+ return "MySQL Logdata Interface";
+ }
+
+ ///
+ /// Closes the database provider
+ ///
+ public void Close()
+ {
+ // Do nothing.
+ }
+
+ ///
+ /// Returns the version of this DB provider
+ ///
+ /// A string containing the provider version
+ public string getVersion()
+ {
+ return "0.1";
+ }
+ }
+}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
new file mode 100644
index 0000000..53b3bdd
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -0,0 +1,609 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Data;
+
+// MySQL Native
+using MySql;
+using MySql.Data;
+using MySql.Data.Types;
+using MySql.Data.MySqlClient;
+
+using OpenGrid.Framework.Data;
+
+namespace OpenGrid.Framework.Data.MySQL
+{
+ ///
+ /// A MySQL Database manager
+ ///
+ class MySQLManager
+ {
+ ///
+ /// The database connection object
+ ///
+ IDbConnection dbcon;
+ ///
+ /// Connection string for ADO.net
+ ///
+ string connectionString;
+
+ ///
+ /// Initialises and creates a new MySQL connection and maintains it.
+ ///
+ /// The MySQL server being connected to
+ /// The name of the MySQL database being used
+ /// The username logging into the database
+ /// The password for the user logging in
+ /// Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.
+ public MySQLManager(string hostname, string database, string username, string password, string cpooling, string port)
+ {
+ try
+ {
+ connectionString = "Server=" + hostname + ";Port=" + port + ";Database=" + database + ";User ID=" + username + ";Password=" + password + ";Pooling=" + cpooling + ";";
+ dbcon = new MySqlConnection(connectionString);
+
+ dbcon.Open();
+
+ System.Console.WriteLine("MySQL connection established");
+ }
+ catch (Exception e)
+ {
+ throw new Exception("Error initialising MySql Database: " + e.ToString());
+ }
+ }
+
+ ///
+ /// Shuts down the database connection
+ ///
+ public void Close()
+ {
+ dbcon.Close();
+ dbcon = null;
+ }
+
+ ///
+ /// Reconnects to the database
+ ///
+ public void Reconnect()
+ {
+ lock (dbcon)
+ {
+ try
+ {
+ // Close the DB connection
+ dbcon.Close();
+ // Try reopen it
+ dbcon = new MySqlConnection(connectionString);
+ dbcon.Open();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Unable to reconnect to database " + e.ToString());
+ }
+ }
+ }
+
+ ///
+ /// Runs a query with protection against SQL Injection by using parameterised input.
+ ///
+ /// The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y
+ /// The parameters - index so that @y is indexed as 'y'
+ /// A MySQL DB Command
+ public IDbCommand Query(string sql, Dictionary parameters)
+ {
+ try
+ {
+ MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
+ dbcommand.CommandText = sql;
+ foreach (KeyValuePair param in parameters)
+ {
+ dbcommand.Parameters.Add(param.Key, param.Value);
+ }
+
+ return (IDbCommand)dbcommand;
+ }
+ catch
+ {
+ lock (dbcon)
+ {
+ // Close the DB connection
+ try
+ {
+ dbcon.Close();
+ }
+ catch { }
+
+ // Try reopen it
+ try
+ {
+ dbcon = new MySqlConnection(connectionString);
+ dbcon.Open();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Unable to reconnect to database " + e.ToString());
+ }
+
+ // Run the query again
+ try
+ {
+ MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
+ dbcommand.CommandText = sql;
+ foreach (KeyValuePair param in parameters)
+ {
+ dbcommand.Parameters.Add(param.Key, param.Value);
+ }
+
+ return (IDbCommand)dbcommand;
+ }
+ catch (Exception e)
+ {
+ // Return null if it fails.
+ Console.WriteLine("Failed during Query generation: " + e.ToString());
+ return null;
+ }
+ }
+ }
+ }
+
+ ///
+ /// Reads a region row from a database reader
+ ///
+ /// An active database reader
+ /// A region profile
+ public SimProfileData readSimRow(IDataReader reader)
+ {
+ SimProfileData retval = new SimProfileData();
+
+ if (reader.Read())
+ {
+ // Region Main
+ retval.regionHandle = Convert.ToUInt64(reader["regionHandle"].ToString());
+ retval.regionName = (string)reader["regionName"];
+ retval.UUID = new libsecondlife.LLUUID((string)reader["uuid"]);
+
+ // Secrets
+ retval.regionRecvKey = (string)reader["regionRecvKey"];
+ retval.regionSecret = (string)reader["regionSecret"];
+ retval.regionSendKey = (string)reader["regionSendKey"];
+
+ // Region Server
+ retval.regionDataURI = (string)reader["regionDataURI"];
+ retval.regionOnline = false; // Needs to be pinged before this can be set.
+ retval.serverIP = (string)reader["serverIP"];
+ retval.serverPort = (uint)reader["serverPort"];
+ retval.serverURI = (string)reader["serverURI"];
+
+ // Location
+ retval.regionLocX = Convert.ToUInt32(reader["locX"].ToString());
+ retval.regionLocY = Convert.ToUInt32(reader["locY"].ToString());
+ retval.regionLocZ = Convert.ToUInt32(reader["locZ"].ToString());
+
+ // Neighbours - 0 = No Override
+ retval.regionEastOverrideHandle = Convert.ToUInt64(reader["eastOverrideHandle"].ToString());
+ retval.regionWestOverrideHandle = Convert.ToUInt64(reader["westOverrideHandle"].ToString());
+ retval.regionSouthOverrideHandle = Convert.ToUInt64(reader["southOverrideHandle"].ToString());
+ retval.regionNorthOverrideHandle = Convert.ToUInt64(reader["northOverrideHandle"].ToString());
+
+ // Assets
+ retval.regionAssetURI = (string)reader["regionAssetURI"];
+ retval.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
+ retval.regionAssetSendKey = (string)reader["regionAssetSendKey"];
+
+ // Userserver
+ retval.regionUserURI = (string)reader["regionUserURI"];
+ retval.regionUserRecvKey = (string)reader["regionUserRecvKey"];
+ retval.regionUserSendKey = (string)reader["regionUserSendKey"];
+
+ // World Map Addition
+ string tempRegionMap = reader["regionMapTexture"].ToString();
+ if (tempRegionMap != "")
+ {
+ retval.regionMapTextureID = new libsecondlife.LLUUID(tempRegionMap);
+ }
+ else
+ {
+ retval.regionMapTextureID = new libsecondlife.LLUUID();
+ }
+ }
+ else
+ {
+ return null;
+ }
+ return retval;
+ }
+
+ ///
+ /// Reads a reservation row from a database reader
+ ///
+ /// An active database reader
+ /// A reservation data object
+ public ReservationData readReservationRow(IDataReader reader)
+ {
+ ReservationData retval = new ReservationData();
+ if (reader.Read())
+ {
+ retval.gridRecvKey = (string)reader["gridRecvKey"];
+ retval.gridSendKey = (string)reader["gridSendKey"];
+ retval.reservationCompany = (string)reader["resCompany"];
+ retval.reservationMaxX = (int)reader["resXMax"];
+ retval.reservationMaxY = (int)reader["resYMax"];
+ retval.reservationMinX = (int)reader["resXMin"];
+ retval.reservationMinY = (int)reader["resYMin"];
+ retval.reservationName = (string)reader["resName"];
+ retval.status = (bool)reader["status"];
+ retval.userUUID = new libsecondlife.LLUUID((string)reader["userUUID"]);
+
+ }
+ else
+ {
+ return null;
+ }
+ return retval;
+ }
+ ///
+ /// Reads an agent row from a database reader
+ ///
+ /// An active database reader
+ /// A user session agent
+ public UserAgentData readAgentRow(IDataReader reader)
+ {
+ UserAgentData retval = new UserAgentData();
+
+ if (reader.Read())
+ {
+ // Agent IDs
+ retval.UUID = new libsecondlife.LLUUID((string)reader["UUID"]);
+ retval.sessionID = new libsecondlife.LLUUID((string)reader["sessionID"]);
+ retval.secureSessionID = new libsecondlife.LLUUID((string)reader["secureSessionID"]);
+
+ // Agent Who?
+ retval.agentIP = (string)reader["agentIP"];
+ retval.agentPort = Convert.ToUInt32(reader["agentPort"].ToString());
+ retval.agentOnline = Convert.ToBoolean(reader["agentOnline"].ToString());
+
+ // Login/Logout times (UNIX Epoch)
+ retval.loginTime = Convert.ToInt32(reader["loginTime"].ToString());
+ retval.logoutTime = Convert.ToInt32(reader["logoutTime"].ToString());
+
+ // Current position
+ retval.currentRegion = (string)reader["currentRegion"];
+ retval.currentHandle = Convert.ToUInt64(reader["currentHandle"].ToString());
+ libsecondlife.LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos);
+ }
+ else
+ {
+ return null;
+ }
+ return retval;
+ }
+
+ ///
+ /// Reads a user profile from an active data reader
+ ///
+ /// An active database reader
+ /// A user profile
+ public UserProfileData readUserRow(IDataReader reader)
+ {
+ UserProfileData retval = new UserProfileData();
+
+ if (reader.Read())
+ {
+ retval.UUID = new libsecondlife.LLUUID((string)reader["UUID"]);
+ retval.username = (string)reader["username"];
+ retval.surname = (string)reader["lastname"];
+
+ retval.passwordHash = (string)reader["passwordHash"];
+ retval.passwordSalt = (string)reader["passwordSalt"];
+
+ retval.homeRegion = Convert.ToUInt64(reader["homeRegion"].ToString());
+ retval.homeLocation = new libsecondlife.LLVector3(
+ Convert.ToSingle(reader["homeLocationX"].ToString()),
+ Convert.ToSingle(reader["homeLocationY"].ToString()),
+ Convert.ToSingle(reader["homeLocationZ"].ToString()));
+ retval.homeLookAt = new libsecondlife.LLVector3(
+ Convert.ToSingle(reader["homeLookAtX"].ToString()),
+ Convert.ToSingle(reader["homeLookAtY"].ToString()),
+ Convert.ToSingle(reader["homeLookAtZ"].ToString()));
+
+ retval.created = Convert.ToInt32(reader["created"].ToString());
+ retval.lastLogin = Convert.ToInt32(reader["lastLogin"].ToString());
+
+ retval.userInventoryURI = (string)reader["userInventoryURI"];
+ retval.userAssetURI = (string)reader["userAssetURI"];
+
+ retval.profileCanDoMask = Convert.ToUInt32(reader["profileCanDoMask"].ToString());
+ retval.profileWantDoMask = Convert.ToUInt32(reader["profileWantDoMask"].ToString());
+
+ retval.profileAboutText = (string)reader["profileAboutText"];
+ retval.profileFirstText = (string)reader["profileFirstText"];
+
+ retval.profileImage = new libsecondlife.LLUUID((string)reader["profileImage"]);
+ retval.profileFirstImage = new libsecondlife.LLUUID((string)reader["profileFirstImage"]);
+
+ }
+ else
+ {
+ return null;
+ }
+ return retval;
+ }
+
+ ///
+ /// Reads a list of inventory folders returned by a query.
+ ///
+ /// A MySQL Data Reader
+ /// A List containing inventory folders
+ public List readInventoryFolders(IDataReader reader)
+ {
+ List rows = new List();
+
+ while(reader.Read())
+ {
+ try
+ {
+ InventoryFolderBase folder = new InventoryFolderBase();
+
+ folder.agentID = new libsecondlife.LLUUID((string)reader["agentID"]);
+ folder.parentID = new libsecondlife.LLUUID((string)reader["parentFolderID"]);
+ folder.folderID = new libsecondlife.LLUUID((string)reader["folderID"]);
+ folder.name = (string)reader["folderName"];
+
+ rows.Add(folder);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ return rows;
+ }
+
+ ///
+ /// Reads a collection of items from an SQL result
+ ///
+ /// The SQL Result
+ /// A List containing Inventory Items
+ public List readInventoryItems(IDataReader reader)
+ {
+ List rows = new List();
+
+ while (reader.Read())
+ {
+ try
+ {
+ InventoryItemBase item = new InventoryItemBase();
+
+ item.assetID = new libsecondlife.LLUUID((string)reader["assetID"]);
+ item.avatarID = new libsecondlife.LLUUID((string)reader["avatarID"]);
+ item.inventoryCurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"].ToString());
+ item.inventoryDescription = (string)reader["inventoryDescription"];
+ item.inventoryID = new libsecondlife.LLUUID((string)reader["inventoryID"]);
+ item.inventoryName = (string)reader["inventoryName"];
+ item.inventoryNextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"].ToString());
+ item.parentFolderID = new libsecondlife.LLUUID((string)reader["parentFolderID"]);
+ item.type = Convert.ToInt32(reader["type"].ToString());
+
+ rows.Add(item);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ return rows;
+ }
+
+ ///
+ /// Inserts a new row into the log database
+ ///
+ /// The daemon which triggered this event
+ /// Who were we operating on when this occured (region UUID, user UUID, etc)
+ /// The method call where the problem occured
+ /// The arguments passed to the method
+ /// How critical is this?
+ /// Extra message info
+ /// Saved successfully?
+ 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 ";
+ sql += "(?target, ?server, ?method, ?arguments, ?priority, ?message)";
+
+ Dictionary parameters = new Dictionary();
+ parameters["?server"] = serverDaemon;
+ parameters["?target"] = target;
+ parameters["?method"] = methodCall;
+ parameters["?arguments"] = arguments;
+ parameters["?priority"] = priority.ToString();
+ parameters["?message"] = logMessage;
+
+ bool returnval = false;
+
+ try
+ {
+ IDbCommand result = Query(sql, parameters);
+
+ if (result.ExecuteNonQuery() == 1)
+ returnval = true;
+
+ result.Dispose();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ return false;
+ }
+
+ return returnval;
+ }
+
+ ///
+ /// Inserts a new item into the database
+ ///
+ /// The item
+ /// Success?
+ public bool insertItem(InventoryItemBase item)
+ {
+ string sql = "REPLACE INTO inventoryitems (inventoryID, assetID, type, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions) VALUES ";
+ sql += "(?inventoryID, ?assetID, ?type, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions)";
+
+ Dictionary parameters = new Dictionary();
+ parameters["?inventoryID"] = item.inventoryID.ToStringHyphenated();
+ parameters["?assetID"] = item.assetID.ToStringHyphenated();
+ parameters["?type"] = item.type.ToString();
+ parameters["?parentFolderID"] = item.parentFolderID.ToStringHyphenated();
+ parameters["?avatarID"] = item.avatarID.ToStringHyphenated();
+ parameters["?inventoryName"] = item.inventoryName;
+ parameters["?inventoryDescription"] = item.inventoryDescription;
+ parameters["?inventoryNextPermissions"] = item.inventoryNextPermissions.ToString();
+ parameters["?inventoryCurrentPermissions"] = item.inventoryCurrentPermissions.ToString();
+
+ bool returnval = false;
+
+ try
+ {
+ IDbCommand result = Query(sql, parameters);
+
+ if (result.ExecuteNonQuery() == 1)
+ returnval = true;
+
+ result.Dispose();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ return false;
+ }
+
+ return returnval;
+ }
+
+ ///
+ /// Inserts a new folder into the database
+ ///
+ /// The folder
+ /// Success?
+ public bool insertFolder(InventoryFolderBase folder)
+ {
+ string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName) VALUES ";
+ sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName)";
+
+ Dictionary parameters = new Dictionary();
+ parameters["?folderID"] = folder.folderID.ToStringHyphenated();
+ parameters["?agentID"] = folder.agentID.ToStringHyphenated();
+ parameters["?parentFolderID"] = folder.parentID.ToStringHyphenated();
+ parameters["?folderName"] = folder.name;
+
+ bool returnval = false;
+ try
+ {
+ IDbCommand result = Query(sql, parameters);
+
+ if (result.ExecuteNonQuery() == 1)
+ returnval = true;
+
+ result.Dispose();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ return false;
+ }
+ return returnval;
+ }
+
+ ///
+ /// Inserts a new region into the database
+ ///
+ /// The region to insert
+ /// Success?
+ public bool insertRegion(SimProfileData regiondata)
+ {
+ string sql = "REPLACE INTO regions (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
+ sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
+ sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey, regionMapTexture) VALUES ";
+
+ sql += "(?regionHandle, ?regionName, ?uuid, ?regionRecvKey, ?regionSecret, ?regionSendKey, ?regionDataURI, ";
+ sql += "?serverIP, ?serverPort, ?serverURI, ?locX, ?locY, ?locZ, ?eastOverrideHandle, ?westOverrideHandle, ?southOverrideHandle, ?northOverrideHandle, ?regionAssetURI, ?regionAssetRecvKey, ";
+ sql += "?regionAssetSendKey, ?regionUserURI, ?regionUserRecvKey, ?regionUserSendKey, ?regionMapTexture);";
+
+ Dictionary parameters = new Dictionary();
+
+ parameters["?regionHandle"] = regiondata.regionHandle.ToString();
+ parameters["?regionName"] = regiondata.regionName.ToString();
+ parameters["?uuid"] = regiondata.UUID.ToStringHyphenated();
+ parameters["?regionRecvKey"] = regiondata.regionRecvKey.ToString();
+ parameters["?regionSecret"] = regiondata.regionSecret.ToString();
+ parameters["?regionSendKey"] = regiondata.regionSendKey.ToString();
+ parameters["?regionDataURI"] = regiondata.regionDataURI.ToString();
+ parameters["?serverIP"] = regiondata.serverIP.ToString();
+ parameters["?serverPort"] = regiondata.serverPort.ToString();
+ parameters["?serverURI"] = regiondata.serverURI.ToString();
+ parameters["?locX"] = regiondata.regionLocX.ToString();
+ parameters["?locY"] = regiondata.regionLocY.ToString();
+ parameters["?locZ"] = regiondata.regionLocZ.ToString();
+ parameters["?eastOverrideHandle"] = regiondata.regionEastOverrideHandle.ToString();
+ parameters["?westOverrideHandle"] = regiondata.regionWestOverrideHandle.ToString();
+ parameters["?northOverrideHandle"] = regiondata.regionNorthOverrideHandle.ToString();
+ parameters["?southOverrideHandle"] = regiondata.regionSouthOverrideHandle.ToString();
+ parameters["?regionAssetURI"] = regiondata.regionAssetURI.ToString();
+ parameters["?regionAssetRecvKey"] = regiondata.regionAssetRecvKey.ToString();
+ parameters["?regionAssetSendKey"] = regiondata.regionAssetSendKey.ToString();
+ parameters["?regionUserURI"] = regiondata.regionUserURI.ToString();
+ parameters["?regionUserRecvKey"] = regiondata.regionUserRecvKey.ToString();
+ parameters["?regionUserSendKey"] = regiondata.regionUserSendKey.ToString();
+ parameters["?regionMapTexture"] = regiondata.regionMapTextureID.ToStringHyphenated();
+
+ bool returnval = false;
+
+ try
+ {
+
+ IDbCommand result = Query(sql, parameters);
+
+ //Console.WriteLine(result.CommandText);
+
+ if (result.ExecuteNonQuery() == 1)
+ returnval = true;
+
+ result.Dispose();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ return false;
+ }
+
+ return returnval;
+ }
+ }
+}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
new file mode 100644
index 0000000..032a0e6
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
@@ -0,0 +1,257 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenGrid.Framework.Data;
+using libsecondlife;
+
+namespace OpenGrid.Framework.Data.MySQL
+{
+ ///
+ /// A database interface class to a user profile storage system
+ ///
+ class MySQLUserData : IUserData
+ {
+ ///
+ /// Database manager for MySQL
+ ///
+ public MySQLManager database;
+
+ ///
+ /// Loads and initialises the MySQL storage plugin
+ ///
+ public void Initialise()
+ {
+ // Load from an INI file connection details
+ // TODO: move this to XML?
+ IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+ string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+ string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+ string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+ string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+ string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+ string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+ database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+ }
+
+ ///
+ /// Searches the database for a specified user profile
+ ///
+ /// The account name of the user
+ /// A user profile
+ public UserProfileData getUserByName(string name)
+ {
+ return getUserByName(name.Split(' ')[0], name.Split(' ')[1]);
+ }
+
+ ///
+ /// Searches the database for a specified user profile by name components
+ ///
+ /// The first part of the account name
+ /// The second part of the account name
+ /// A user profile
+ public UserProfileData getUserByName(string user, string last)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?first"] = user;
+ param["?second"] = last;
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM users WHERE username = ?first AND lastname = ?second", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ UserProfileData row = database.readUserRow(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ return row;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Searches the database for a specified user profile by UUID
+ ///
+ /// The account ID
+ /// The users profile
+ public UserProfileData getUserByUUID(LLUUID uuid)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = uuid.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ UserProfileData row = database.readUserRow(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ return row;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Returns a user session searching by name
+ ///
+ /// The account name
+ /// The users session
+ public UserAgentData getAgentByName(string name)
+ {
+ return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]);
+ }
+
+ ///
+ /// Returns a user session by account name
+ ///
+ /// First part of the users account name
+ /// Second part of the users account name
+ /// The users session
+ public UserAgentData getAgentByName(string user, string last)
+ {
+ UserProfileData profile = getUserByName(user, last);
+ return getAgentByUUID(profile.UUID);
+ }
+
+ ///
+ /// Returns an agent session by account UUID
+ ///
+ /// The accounts UUID
+ /// The users session
+ public UserAgentData getAgentByUUID(LLUUID uuid)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?uuid"] = uuid.ToStringHyphenated();
+
+ System.Data.IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = ?uuid", param);
+ System.Data.IDataReader reader = result.ExecuteReader();
+
+ UserAgentData row = database.readAgentRow(reader);
+
+ reader.Close();
+ result.Dispose();
+
+ return row;
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ Console.WriteLine(e.ToString());
+ return null;
+ }
+ }
+
+ ///
+ /// Creates a new users profile
+ ///
+ /// The user profile to create
+ public void addNewUserProfile(UserProfileData user)
+ {
+ }
+
+ ///
+ /// Creates a new agent
+ ///
+ /// The agent to create
+ public void addNewUserAgent(UserAgentData agent)
+ {
+ // Do nothing.
+ }
+
+ ///
+ /// Performs a money transfer request between two accounts
+ ///
+ /// The senders account ID
+ /// The recievers account ID
+ /// The amount to transfer
+ /// Success?
+ public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount)
+ {
+ return false;
+ }
+
+ ///
+ /// Performs an inventory transfer request between two accounts
+ ///
+ /// TODO: Move to inventory server
+ /// The senders account ID
+ /// The recievers account ID
+ /// The item to transfer
+ /// Success?
+ public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item)
+ {
+ return false;
+ }
+
+ ///
+ /// Database provider name
+ ///
+ /// Provider name
+ public string getName()
+ {
+ return "MySQL Userdata Interface";
+ }
+
+ ///
+ /// Database provider version
+ ///
+ /// provider version
+ public string getVersion()
+ {
+ return "0.1";
+ }
+ }
+}
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
new file mode 100644
index 0000000..62e3887
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -0,0 +1,117 @@
+
+
+ Local
+ 8.0.50727
+ 2.0
+ {17F7F6BE-0000-0000-0000-000000000000}
+ Debug
+ AnyCPU
+
+
+
+ OpenSim.Framework.Data.MySQL
+ JScript
+ Grid
+ IE50
+ false
+ Library
+
+ OpenSim.Framework.Data.MySQL
+
+
+
+
+
+ False
+ 285212672
+ False
+
+
+ TRACE;DEBUG
+
+ True
+ 4096
+ False
+ ..\..\..\bin\
+ False
+ False
+ False
+ 4
+
+
+
+ False
+ 285212672
+ False
+
+
+ TRACE
+
+ False
+ 4096
+ True
+ ..\..\..\bin\
+ False
+ False
+ False
+ 4
+
+
+
+
+ ..\..\..\bin\libsecondlife.dll
+ False
+
+
+ ..\..\..\bin\MySql.Data.dll
+ False
+
+
+ System.dll
+ False
+
+
+ System.Data.dll
+ False
+
+
+ System.Xml.dll
+ False
+
+
+
+
+ OpenSim.Framework.Data
+ {36B72A9B-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user
new file mode 100644
index 0000000..6841907
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user
@@ -0,0 +1,12 @@
+
+
+ Debug
+ AnyCPU
+ C:\New Folder\second-life-viewer\opensim-dailys2\opensim15-06\NameSpaceChanges\bin\
+ 8.0.50727
+ ProjectFiles
+ 0
+
+
+
+
diff --git a/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs b/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0bfd1d6
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenGrid.Framework.Data.MySQL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenGrid.Framework.Data.MySQL")]
+[assembly: AssemblyCopyright("Copyright © 2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e49826b2-dcef-41be-a5bd-596733fa3304")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--
cgit v1.1
From fe120533efd0ec6b2248d96b9a1f8b7637c5dadd Mon Sep 17 00:00:00 2001
From: mingchen
Date: Wed, 27 Jun 2007 17:12:32 +0000
Subject: *Updated prebuild.xml and ran prebuild again *Removed .user, .suo,
and unneccessary files in /bin/Physics/ *OpenSim.sln should compile with nant
and on windows now
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user | 12 ------------
2 files changed, 5 insertions(+), 17 deletions(-)
delete mode 100644 OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 62e3887..09a32b5 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
- Code
-
Code
-
+
Code
Code
-
+
+ Code
+
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user
deleted file mode 100644
index 6841907..0000000
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj.user
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- Debug
- AnyCPU
- C:\New Folder\second-life-viewer\opensim-dailys2\opensim15-06\NameSpaceChanges\bin\
- 8.0.50727
- ProjectFiles
- 0
-
-
-
-
--
cgit v1.1
From 2261e4ec2a43a56dbb74168a169f39b2c6c1f054 Mon Sep 17 00:00:00 2001
From: mingchen
Date: Wed, 27 Jun 2007 18:04:07 +0000
Subject: *Fixed all renaming for OpenGridServices.sln, still a reference issue
in prebuild.xml though
---
OpenSim/Framework/Data.MySQL/MySQLGridData.cs | 4 ++--
OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs | 2 +-
OpenSim/Framework/Data.MySQL/MySQLLogData.cs | 2 +-
OpenSim/Framework/Data.MySQL/MySQLManager.cs | 4 ++--
OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 4 ++--
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs | 4 ++--
7 files changed, 15 insertions(+), 15 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
index 4d6cf63..43e3054 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
@@ -28,9 +28,9 @@
using System;
using System.Collections.Generic;
using System.Text;
-using OpenGrid.Framework.Data;
+using OpenSim.Framework.Data;
-namespace OpenGrid.Framework.Data.MySQL
+namespace OpenSim.Framework.Data.MySQL
{
///
/// A MySQL Interface for the Grid Server
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
index fb429e4..434df1a 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
using System.Text;
using libsecondlife;
-namespace OpenGrid.Framework.Data.MySQL
+namespace OpenSim.Framework.Data.MySQL
{
///
/// A MySQL interface for the inventory server
diff --git a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
index c88b39f..8265614 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
@@ -29,7 +29,7 @@ using System;
using System.Collections.Generic;
using System.Text;
-namespace OpenGrid.Framework.Data.MySQL
+namespace OpenSim.Framework.Data.MySQL
{
///
/// An interface to the log database for MySQL
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index 53b3bdd..b2f398b 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -36,9 +36,9 @@ using MySql.Data;
using MySql.Data.Types;
using MySql.Data.MySqlClient;
-using OpenGrid.Framework.Data;
+using OpenSim.Framework.Data;
-namespace OpenGrid.Framework.Data.MySQL
+namespace OpenSim.Framework.Data.MySQL
{
///
/// A MySQL Database manager
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
index 032a0e6..0304452 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
@@ -28,10 +28,10 @@
using System;
using System.Collections.Generic;
using System.Text;
-using OpenGrid.Framework.Data;
+using OpenSim.Framework.Data;
using libsecondlife;
-namespace OpenGrid.Framework.Data.MySQL
+namespace OpenSim.Framework.Data.MySQL
{
///
/// A database interface class to a user profile storage system
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 09a32b5..62e3887 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs b/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
index 0bfd1d6..d67ccf6 100644
--- a/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("OpenGrid.Framework.Data.MySQL")]
+[assembly: AssemblyTitle("OpenSim.Framework.Data.MySQL")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenGrid.Framework.Data.MySQL")]
+[assembly: AssemblyProduct("OpenSim.Framework.Data.MySQL")]
[assembly: AssemblyCopyright("Copyright © 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
--
cgit v1.1
From 9eaecabdd0884cfe17d249440badce1ecdbcc142 Mon Sep 17 00:00:00 2001
From: mingchen
Date: Wed, 27 Jun 2007 19:04:23 +0000
Subject: *Moved VersionInfo.cs to its correct place in OpenSim.csproj *Added
OpenSim.Region.Caps *Updated prebuild.xml and ran prebuild
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 62e3887..09a32b5 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
- Code
-
Code
-
+
Code
Code
-
+
+ Code
+
+
Code
--
cgit v1.1
From 3456d951d89fbc83f742d40ca8ca2a1a79d414eb Mon Sep 17 00:00:00 2001
From: MW
Date: Thu, 28 Jun 2007 13:13:17 +0000
Subject: Imported the scripting changes, so now should be up to date with
sugilite.
---
.../Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 ++---
.../OpenSim.Framework.Data.MySQL.dll.build | 49 ++++++++++++++++++++++
2 files changed, 54 insertions(+), 5 deletions(-)
create mode 100644 OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 09a32b5..62e3887 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
new file mode 100644
index 0000000..594ec52
--- /dev/null
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.1
From 108d89f89436556c8f4662197903c374db943f7d Mon Sep 17 00:00:00 2001
From: mingchen
Date: Thu, 28 Jun 2007 16:17:20 +0000
Subject: *Master User is now set up *Added support for getting user profile
information from remote grid server (untested) *Updated prebuild.xml
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 62e3887..09a32b5 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
- Code
-
Code
-
+
Code
Code
-
+
+ Code
+
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 594ec52..3aeebbc 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
-
-
-
+
+
+
--
cgit v1.1
From 135e9b1f538ae77dfd8bf68139c960fb8e016c16 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Thu, 28 Jun 2007 19:35:20 +0000
Subject: * Removed J# language support because it has issues with Mono.
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 09a32b5..62e3887 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 3aeebbc..594ec52 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
+
-
-
-
+
+
--
cgit v1.1
From 6b3777d3db323f2054aeff1ba4be3e78edef21b8 Mon Sep 17 00:00:00 2001
From: mingchen
Date: Fri, 29 Jun 2007 16:43:48 +0000
Subject: *Deleted Logger.cs from OpenSim.Framework
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 62e3887..09a32b5 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
- Code
-
Code
-
+
Code
Code
-
+
+ Code
+
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 594ec52..3aeebbc 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
-
-
-
+
+
+
--
cgit v1.1
From 5e805656db1215518a344d6d5364629a4997fd47 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Sun, 1 Jul 2007 13:17:27 +0000
Subject: Fixed SimpleApp - aka thankgoditssundaycommit * Updated SimpleApp
with various introduced dependencies * Extracted ScenePrescence creation in
Scene * removed try-catchall from UserManagerBase (that actually hid a bug) *
Refactored RegionInfo * handle is calculated * it will explode upon
accessing x,y,ip,port,externalip if not explicitly initialized * Removed
superfluous 'ref' keywords * Removed a shitload of 'catch Exception e' that
causes build warnings * Lots of small refactorings, renames et c * Ignored
some bins
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 09a32b5..62e3887 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 3aeebbc..594ec52 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
+
-
-
-
+
+
--
cgit v1.1
From 9b6b6d05d45cf0f754a0b26bf6240ef50be66563 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Tue, 3 Jul 2007 14:37:29 +0000
Subject: * Optimized usings (the 'LL ate my scripts' commit) * added some
licensing info
---
OpenSim/Framework/Data.MySQL/MySQLGridData.cs | 30 +++++++------
OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs | 22 +++++-----
OpenSim/Framework/Data.MySQL/MySQLLogData.cs | 2 -
OpenSim/Framework/Data.MySQL/MySQLManager.cs | 51 ++++++++++------------
OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 15 +++----
.../Data.MySQL/Properties/AssemblyInfo.cs | 2 -
6 files changed, 56 insertions(+), 66 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
index 43e3054..ef643d2 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
@@ -27,8 +27,10 @@
*/
using System;
using System.Collections.Generic;
+using System.Data;
+using System.Security.Cryptography;
using System.Text;
-using OpenSim.Framework.Data;
+using libsecondlife;
namespace OpenSim.Framework.Data.MySQL
{
@@ -104,8 +106,8 @@ namespace OpenSim.Framework.Data.MySQL
param["?xmax"] = xmax.ToString();
param["?ymax"] = ymax.ToString();
- System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE locX >= ?xmin AND locX <= ?xmax AND locY >= ?ymin AND locY <= ?ymax", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM regions WHERE locX >= ?xmin AND locX <= ?xmax AND locY >= ?ymin AND locY <= ?ymax", param);
+ IDataReader reader = result.ExecuteReader();
SimProfileData row;
@@ -144,8 +146,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?handle"] = handle.ToString();
- System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE regionHandle = ?handle", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM regions WHERE regionHandle = ?handle", param);
+ IDataReader reader = result.ExecuteReader();
SimProfileData row = database.readSimRow(reader);
reader.Close();
@@ -167,7 +169,7 @@ namespace OpenSim.Framework.Data.MySQL
///
/// The region UUID
/// The sim profile
- public SimProfileData GetProfileByLLUUID(libsecondlife.LLUUID uuid)
+ public SimProfileData GetProfileByLLUUID(LLUUID uuid)
{
try
{
@@ -176,8 +178,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = uuid.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
SimProfileData row = database.readSimRow(reader);
reader.Close();
@@ -221,7 +223,7 @@ namespace OpenSim.Framework.Data.MySQL
/// The attempted regionHandle of the challenger
/// The secret
/// Whether the secret and regionhandle match the database entry for UUID
- public bool AuthenticateSim(libsecondlife.LLUUID uuid, ulong handle, string authkey)
+ public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
{
bool throwHissyFit = false; // Should be true by 1.0
@@ -242,10 +244,10 @@ namespace OpenSim.Framework.Data.MySQL
///
///
///
- public bool AuthenticateSim(libsecondlife.LLUUID uuid, ulong handle, string authhash, string challenge)
+ public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
{
- System.Security.Cryptography.SHA512Managed HashProvider = new System.Security.Cryptography.SHA512Managed();
- System.Text.ASCIIEncoding TextProvider = new ASCIIEncoding();
+ SHA512Managed HashProvider = new SHA512Managed();
+ ASCIIEncoding TextProvider = new ASCIIEncoding();
byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
byte[] hash = HashProvider.ComputeHash(stream);
@@ -262,8 +264,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?x"] = x.ToString();
param["?y"] = y.ToString();
- System.Data.IDbCommand result = database.Query("SELECT * FROM reservations WHERE resXMin <= ?x AND resXMax >= ?x AND resYMin <= ?y AND resYMax >= ?y", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM reservations WHERE resXMin <= ?x AND resXMax >= ?x AND resYMin <= ?y AND resYMax >= ?y", param);
+ IDataReader reader = result.ExecuteReader();
ReservationData row = database.readReservationRow(reader);
reader.Close();
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
index 434df1a..790759a 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
@@ -27,7 +27,7 @@
*/
using System;
using System.Collections.Generic;
-using System.Text;
+using System.Data;
using libsecondlife;
namespace OpenSim.Framework.Data.MySQL
@@ -98,8 +98,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = folderID.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
List items = database.readInventoryItems(reader);
@@ -132,8 +132,8 @@ namespace OpenSim.Framework.Data.MySQL
param["?uuid"] = user.ToStringHyphenated();
param["?zero"] = LLUUID.Zero.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
List items = database.readInventoryFolders(reader);
@@ -165,8 +165,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = parentID.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
List items = database.readInventoryFolders(reader);
@@ -198,8 +198,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = item.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
List items = database.readInventoryItems(reader);
@@ -238,8 +238,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = folder.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
List items = database.readInventoryFolders(reader);
diff --git a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
index 8265614..66f3399 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
@@ -26,8 +26,6 @@
*
*/
using System;
-using System.Collections.Generic;
-using System.Text;
namespace OpenSim.Framework.Data.MySQL
{
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index b2f398b..ab478ed 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -27,17 +27,10 @@
*/
using System;
using System.Collections.Generic;
-using System.Text;
using System.Data;
-
-// MySQL Native
-using MySql;
-using MySql.Data;
-using MySql.Data.Types;
+using libsecondlife;
using MySql.Data.MySqlClient;
-using OpenSim.Framework.Data;
-
namespace OpenSim.Framework.Data.MySQL
{
///
@@ -71,7 +64,7 @@ namespace OpenSim.Framework.Data.MySQL
dbcon.Open();
- System.Console.WriteLine("MySQL connection established");
+ Console.WriteLine("MySQL connection established");
}
catch (Exception e)
{
@@ -187,7 +180,7 @@ namespace OpenSim.Framework.Data.MySQL
// Region Main
retval.regionHandle = Convert.ToUInt64(reader["regionHandle"].ToString());
retval.regionName = (string)reader["regionName"];
- retval.UUID = new libsecondlife.LLUUID((string)reader["uuid"]);
+ retval.UUID = new LLUUID((string)reader["uuid"]);
// Secrets
retval.regionRecvKey = (string)reader["regionRecvKey"];
@@ -226,11 +219,11 @@ namespace OpenSim.Framework.Data.MySQL
string tempRegionMap = reader["regionMapTexture"].ToString();
if (tempRegionMap != "")
{
- retval.regionMapTextureID = new libsecondlife.LLUUID(tempRegionMap);
+ retval.regionMapTextureID = new LLUUID(tempRegionMap);
}
else
{
- retval.regionMapTextureID = new libsecondlife.LLUUID();
+ retval.regionMapTextureID = new LLUUID();
}
}
else
@@ -259,7 +252,7 @@ namespace OpenSim.Framework.Data.MySQL
retval.reservationMinY = (int)reader["resYMin"];
retval.reservationName = (string)reader["resName"];
retval.status = (bool)reader["status"];
- retval.userUUID = new libsecondlife.LLUUID((string)reader["userUUID"]);
+ retval.userUUID = new LLUUID((string)reader["userUUID"]);
}
else
@@ -280,9 +273,9 @@ namespace OpenSim.Framework.Data.MySQL
if (reader.Read())
{
// Agent IDs
- retval.UUID = new libsecondlife.LLUUID((string)reader["UUID"]);
- retval.sessionID = new libsecondlife.LLUUID((string)reader["sessionID"]);
- retval.secureSessionID = new libsecondlife.LLUUID((string)reader["secureSessionID"]);
+ retval.UUID = new LLUUID((string)reader["UUID"]);
+ retval.sessionID = new LLUUID((string)reader["sessionID"]);
+ retval.secureSessionID = new LLUUID((string)reader["secureSessionID"]);
// Agent Who?
retval.agentIP = (string)reader["agentIP"];
@@ -296,7 +289,7 @@ namespace OpenSim.Framework.Data.MySQL
// Current position
retval.currentRegion = (string)reader["currentRegion"];
retval.currentHandle = Convert.ToUInt64(reader["currentHandle"].ToString());
- libsecondlife.LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos);
+ LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos);
}
else
{
@@ -316,7 +309,7 @@ namespace OpenSim.Framework.Data.MySQL
if (reader.Read())
{
- retval.UUID = new libsecondlife.LLUUID((string)reader["UUID"]);
+ retval.UUID = new LLUUID((string)reader["UUID"]);
retval.username = (string)reader["username"];
retval.surname = (string)reader["lastname"];
@@ -324,11 +317,11 @@ namespace OpenSim.Framework.Data.MySQL
retval.passwordSalt = (string)reader["passwordSalt"];
retval.homeRegion = Convert.ToUInt64(reader["homeRegion"].ToString());
- retval.homeLocation = new libsecondlife.LLVector3(
+ retval.homeLocation = new LLVector3(
Convert.ToSingle(reader["homeLocationX"].ToString()),
Convert.ToSingle(reader["homeLocationY"].ToString()),
Convert.ToSingle(reader["homeLocationZ"].ToString()));
- retval.homeLookAt = new libsecondlife.LLVector3(
+ retval.homeLookAt = new LLVector3(
Convert.ToSingle(reader["homeLookAtX"].ToString()),
Convert.ToSingle(reader["homeLookAtY"].ToString()),
Convert.ToSingle(reader["homeLookAtZ"].ToString()));
@@ -345,8 +338,8 @@ namespace OpenSim.Framework.Data.MySQL
retval.profileAboutText = (string)reader["profileAboutText"];
retval.profileFirstText = (string)reader["profileFirstText"];
- retval.profileImage = new libsecondlife.LLUUID((string)reader["profileImage"]);
- retval.profileFirstImage = new libsecondlife.LLUUID((string)reader["profileFirstImage"]);
+ retval.profileImage = new LLUUID((string)reader["profileImage"]);
+ retval.profileFirstImage = new LLUUID((string)reader["profileFirstImage"]);
}
else
@@ -371,9 +364,9 @@ namespace OpenSim.Framework.Data.MySQL
{
InventoryFolderBase folder = new InventoryFolderBase();
- folder.agentID = new libsecondlife.LLUUID((string)reader["agentID"]);
- folder.parentID = new libsecondlife.LLUUID((string)reader["parentFolderID"]);
- folder.folderID = new libsecondlife.LLUUID((string)reader["folderID"]);
+ folder.agentID = new LLUUID((string)reader["agentID"]);
+ folder.parentID = new LLUUID((string)reader["parentFolderID"]);
+ folder.folderID = new LLUUID((string)reader["folderID"]);
folder.name = (string)reader["folderName"];
rows.Add(folder);
@@ -402,14 +395,14 @@ namespace OpenSim.Framework.Data.MySQL
{
InventoryItemBase item = new InventoryItemBase();
- item.assetID = new libsecondlife.LLUUID((string)reader["assetID"]);
- item.avatarID = new libsecondlife.LLUUID((string)reader["avatarID"]);
+ item.assetID = new LLUUID((string)reader["assetID"]);
+ item.avatarID = new LLUUID((string)reader["avatarID"]);
item.inventoryCurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"].ToString());
item.inventoryDescription = (string)reader["inventoryDescription"];
- item.inventoryID = new libsecondlife.LLUUID((string)reader["inventoryID"]);
+ item.inventoryID = new LLUUID((string)reader["inventoryID"]);
item.inventoryName = (string)reader["inventoryName"];
item.inventoryNextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"].ToString());
- item.parentFolderID = new libsecondlife.LLUUID((string)reader["parentFolderID"]);
+ item.parentFolderID = new LLUUID((string)reader["parentFolderID"]);
item.type = Convert.ToInt32(reader["type"].ToString());
rows.Add(item);
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
index 0304452..c116536 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
@@ -27,8 +27,7 @@
*/
using System;
using System.Collections.Generic;
-using System.Text;
-using OpenSim.Framework.Data;
+using System.Data;
using libsecondlife;
namespace OpenSim.Framework.Data.MySQL
@@ -87,8 +86,8 @@ namespace OpenSim.Framework.Data.MySQL
param["?first"] = user;
param["?second"] = last;
- System.Data.IDbCommand result = database.Query("SELECT * FROM users WHERE username = ?first AND lastname = ?second", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM users WHERE username = ?first AND lastname = ?second", param);
+ IDataReader reader = result.ExecuteReader();
UserProfileData row = database.readUserRow(reader);
@@ -120,8 +119,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = uuid.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
UserProfileData row = database.readUserRow(reader);
@@ -175,8 +174,8 @@ namespace OpenSim.Framework.Data.MySQL
Dictionary param = new Dictionary();
param["?uuid"] = uuid.ToStringHyphenated();
- System.Data.IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = ?uuid", param);
- System.Data.IDataReader reader = result.ExecuteReader();
+ IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = ?uuid", param);
+ IDataReader reader = result.ExecuteReader();
UserAgentData row = database.readAgentRow(reader);
diff --git a/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs b/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
index d67ccf6..52d6a54 100644
--- a/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
@@ -1,7 +1,5 @@
using System.Reflection;
-using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
-
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
--
cgit v1.1
From 827cccb99c39b7dd3ee0ccc3defb9d88e449db52 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Wed, 4 Jul 2007 07:45:42 +0000
Subject: Grid Servers: * Sugilite grid server now works with older regions
properly (using it on deepgrid for testing) * Sugilite user server still
broken with sugilite region server * Reduced the number of compiler warnings
to zero Region Servers: * Added debug information to OGS1 Comms to help debug
user server connectivity issues.
---
OpenSim/Framework/Data.MySQL/MySQLLogData.cs | 2 +-
OpenSim/Framework/Data.MySQL/MySQLManager.cs | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
index 66f3399..38f9fd3 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Framework.Data.MySQL
{
database.insertLogRow(serverDaemon, target, methodCall, arguments, priority, logMessage);
}
- catch (Exception e)
+ catch
{
database.Reconnect();
}
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index ab478ed..88365a3 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -246,12 +246,12 @@ namespace OpenSim.Framework.Data.MySQL
retval.gridRecvKey = (string)reader["gridRecvKey"];
retval.gridSendKey = (string)reader["gridSendKey"];
retval.reservationCompany = (string)reader["resCompany"];
- retval.reservationMaxX = (int)reader["resXMax"];
- retval.reservationMaxY = (int)reader["resYMax"];
- retval.reservationMinX = (int)reader["resXMin"];
- retval.reservationMinY = (int)reader["resYMin"];
+ retval.reservationMaxX = Convert.ToInt32(reader["resXMax"].ToString());
+ retval.reservationMaxY = Convert.ToInt32(reader["resYMax"].ToString());
+ retval.reservationMinX = Convert.ToInt32(reader["resXMin"].ToString());
+ retval.reservationMinY = Convert.ToInt32(reader["resYMin"].ToString());
retval.reservationName = (string)reader["resName"];
- retval.status = (bool)reader["status"];
+ retval.status = Convert.ToInt32(reader["status"].ToString()) == 1;
retval.userUUID = new LLUUID((string)reader["userUUID"]);
}
--
cgit v1.1
From 583f2a9de8e503773a427facd5f81a82b40bd585 Mon Sep 17 00:00:00 2001
From: mingchen
Date: Thu, 5 Jul 2007 15:15:28 +0000
Subject: *Removed SimProfile.cs as it is no longer needed (in favor of
SimProfileData) *Added simulator_data_request XMLRPC method to request data
from the grid server about a sim instead of faking its login *Login is
progressing, now just getting an XML error (http://pastebin.com/942515) -- if
you can fix this, throw MingChen in IRC a Private Message
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 62e3887..09a32b5 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
- Code
-
Code
-
+
Code
Code
-
+
+ Code
+
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 594ec52..3aeebbc 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
-
-
-
+
+
+
--
cgit v1.1
From 10ece46cf681f389b9ecce5e89b94d749a44e9c1 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sun, 8 Jul 2007 02:58:01 +0000
Subject: * Updating prebuild
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 +++++-----
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 09a32b5..62e3887 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 3aeebbc..594ec52 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
+
-
-
-
+
+
--
cgit v1.1
From 4adf4c57d481369af0d98d8addab2f7b54ce21a5 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Sun, 8 Jul 2007 12:10:32 +0000
Subject:
---
.../Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 10 ++++------
.../Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build | 2 +-
2 files changed, 5 insertions(+), 7 deletions(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 62e3887..62c7916 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -66,6 +66,10 @@
..\..\..\bin\MySql.Data.dll
False
+
+ OpenSim.Framework.Data.dll
+ False
+
System.dll
False
@@ -80,12 +84,6 @@
-
- OpenSim.Framework.Data
- {36B72A9B-0000-0000-0000-000000000000}
- {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- False
-
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 594ec52..b1d65e0 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -25,7 +25,7 @@
-
+
--
cgit v1.1
From 5f8de1e7045b9daa2d4f3b21ca826987e32efe6e Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Sun, 8 Jul 2007 19:27:04 +0000
Subject: * By popular demand, all generated build files are now deleted.
Somebody should make sure the wiki is updated.
---
.../Data.MySQL/OpenSim.Framework.Data.MySQL.csproj | 115 ---------------------
.../OpenSim.Framework.Data.MySQL.dll.build | 49 ---------
2 files changed, 164 deletions(-)
delete mode 100644 OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
delete mode 100644 OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
deleted file mode 100644
index 62c7916..0000000
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
- Local
- 8.0.50727
- 2.0
- {17F7F6BE-0000-0000-0000-000000000000}
- Debug
- AnyCPU
-
-
-
- OpenSim.Framework.Data.MySQL
- JScript
- Grid
- IE50
- false
- Library
-
- OpenSim.Framework.Data.MySQL
-
-
-
-
-
- False
- 285212672
- False
-
-
- TRACE;DEBUG
-
- True
- 4096
- False
- ..\..\..\bin\
- False
- False
- False
- 4
-
-
-
- False
- 285212672
- False
-
-
- TRACE
-
- False
- 4096
- True
- ..\..\..\bin\
- False
- False
- False
- 4
-
-
-
-
- ..\..\..\bin\libsecondlife.dll
- False
-
-
- ..\..\..\bin\MySql.Data.dll
- False
-
-
- OpenSim.Framework.Data.dll
- False
-
-
- System.dll
- False
-
-
- System.Data.dll
- False
-
-
- System.Xml.dll
- False
-
-
-
-
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
-
-
-
-
-
-
-
-
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
deleted file mode 100644
index b1d65e0..0000000
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--
cgit v1.1