Merge branch 'master' into careminster
Conflicts: OpenSim/Data/MySQL/MySQLAssetData.cs OpenSim/Data/MySQL/MySQLSimulationData.cs OpenSim/Data/MySQL/MySQLUserAccountData.csavinationmerge
commit
4b982db252
|
@ -146,6 +146,7 @@ what it is today.
|
||||||
* Stefan_Boom / stoehr
|
* Stefan_Boom / stoehr
|
||||||
* Strawberry Fride
|
* Strawberry Fride
|
||||||
* Talun
|
* Talun
|
||||||
|
* TBG Renfold
|
||||||
* tglion
|
* tglion
|
||||||
* tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud)
|
* tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud)
|
||||||
* tyre
|
* tyre
|
||||||
|
|
|
@ -163,12 +163,12 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
|
|
||||||
MySqlCommand cmd =
|
using (MySqlCommand cmd =
|
||||||
new MySqlCommand(
|
new MySqlCommand(
|
||||||
"replace INTO assets(id, name, description, assetType, local, temporary, create_time, access_time, asset_flags, CreatorID, data)" +
|
"replace INTO assets(id, name, description, assetType, local, temporary, create_time, access_time, asset_flags, CreatorID, data)" +
|
||||||
"VALUES(?id, ?name, ?description, ?assetType, ?local, ?temporary, ?create_time, ?access_time, ?asset_flags, ?CreatorID, ?data)",
|
"VALUES(?id, ?name, ?description, ?assetType, ?local, ?temporary, ?create_time, ?access_time, ?asset_flags, ?CreatorID, ?data)",
|
||||||
dbcon);
|
dbcon))
|
||||||
|
{
|
||||||
string assetName = asset.Name;
|
string assetName = asset.Name;
|
||||||
if (asset.Name.Length > 64)
|
if (asset.Name.Length > 64)
|
||||||
{
|
{
|
||||||
|
@ -183,7 +183,6 @@ namespace OpenSim.Data.MySQL
|
||||||
m_log.Warn("[ASSET DB]: Description field truncated from " + asset.Description.Length + " to " + assetDescription.Length + " characters on add");
|
m_log.Warn("[ASSET DB]: Description field truncated from " + asset.Description.Length + " to " + assetDescription.Length + " characters on add");
|
||||||
}
|
}
|
||||||
|
|
||||||
// need to ensure we dispose
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (cmd)
|
using (cmd)
|
||||||
|
@ -202,7 +201,6 @@ namespace OpenSim.Data.MySQL
|
||||||
cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags);
|
cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags);
|
||||||
cmd.Parameters.AddWithValue("?data", asset.Data);
|
cmd.Parameters.AddWithValue("?data", asset.Data);
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
cmd.Dispose();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -215,6 +213,7 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateAccessTime(AssetBase asset)
|
private void UpdateAccessTime(AssetBase asset)
|
||||||
{
|
{
|
||||||
|
@ -223,11 +222,10 @@ namespace OpenSim.Data.MySQL
|
||||||
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
MySqlCommand cmd =
|
|
||||||
new MySqlCommand("update assets set access_time=?access_time where id=?id",
|
|
||||||
dbcon);
|
|
||||||
|
|
||||||
// need to ensure we dispose
|
using (MySqlCommand cmd
|
||||||
|
= new MySqlCommand("update assets set access_time=?access_time where id=?id", dbcon))
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (cmd)
|
using (cmd)
|
||||||
|
@ -237,7 +235,6 @@ namespace OpenSim.Data.MySQL
|
||||||
cmd.Parameters.AddWithValue("?id", asset.ID);
|
cmd.Parameters.AddWithValue("?id", asset.ID);
|
||||||
cmd.Parameters.AddWithValue("?access_time", now);
|
cmd.Parameters.AddWithValue("?access_time", now);
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
cmd.Dispose();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -249,7 +246,7 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -312,7 +309,12 @@ namespace OpenSim.Data.MySQL
|
||||||
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
MySqlCommand cmd = new MySqlCommand("SELECT name,description,assetType,temporary,id,asset_flags,CreatorID FROM assets LIMIT ?start, ?count", dbcon);
|
|
||||||
|
using (MySqlCommand cmd
|
||||||
|
= new MySqlCommand(
|
||||||
|
"SELECT name,description,assetType,temporary,id,asset_flags,CreatorID FROM assets LIMIT ?start, ?count",
|
||||||
|
dbcon))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?start", start);
|
cmd.Parameters.AddWithValue("?start", start);
|
||||||
cmd.Parameters.AddWithValue("?count", count);
|
cmd.Parameters.AddWithValue("?count", count);
|
||||||
|
|
||||||
|
@ -344,6 +346,7 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return retList;
|
return retList;
|
||||||
}
|
}
|
||||||
|
@ -355,11 +358,12 @@ namespace OpenSim.Data.MySQL
|
||||||
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
MySqlCommand cmd = new MySqlCommand("delete from assets where id=?id", dbcon);
|
|
||||||
|
using (MySqlCommand cmd = new MySqlCommand("delete from assets where id=?id", dbcon))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?id", id);
|
cmd.Parameters.AddWithValue("?id", id);
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
cmd.Dispose();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,10 @@ namespace OpenSim.Data.MySQL
|
||||||
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
MySqlCommand cmd = new MySqlCommand("select * from `" + m_Realm + "` where UUID = ?principalID", dbcon);
|
|
||||||
|
using (MySqlCommand cmd
|
||||||
|
= new MySqlCommand("select * from `" + m_Realm + "` where UUID = ?principalID", dbcon))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
|
||||||
|
|
||||||
IDataReader result = cmd.ExecuteReader();
|
IDataReader result = cmd.ExecuteReader();
|
||||||
|
@ -97,6 +100,7 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void CheckColumnNames(IDataReader result)
|
private void CheckColumnNames(IDataReader result)
|
||||||
{
|
{
|
||||||
|
@ -119,8 +123,8 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
string[] fields = new List<string>(data.Data.Keys).ToArray();
|
string[] fields = new List<string>(data.Data.Keys).ToArray();
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
string update = "update `"+m_Realm+"` set ";
|
string update = "update `"+m_Realm+"` set ";
|
||||||
bool first = true;
|
bool first = true;
|
||||||
foreach (string field in fields)
|
foreach (string field in fields)
|
||||||
|
@ -148,28 +152,24 @@ namespace OpenSim.Data.MySQL
|
||||||
cmd.CommandText = insert;
|
cmd.CommandText = insert;
|
||||||
|
|
||||||
if (ExecuteNonQuery(cmd) < 1)
|
if (ExecuteNonQuery(cmd) < 1)
|
||||||
{
|
|
||||||
cmd.Dispose();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.Dispose();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SetDataItem(UUID principalID, string item, string value)
|
public bool SetDataItem(UUID principalID, string item, string value)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand("update `" + m_Realm +
|
using (MySqlCommand cmd
|
||||||
"` set `" + item + "` = ?" + item + " where UUID = ?UUID");
|
= new MySqlCommand("update `" + m_Realm + "` set `" + item + "` = ?" + item + " where UUID = ?UUID"))
|
||||||
|
{
|
||||||
|
|
||||||
cmd.Parameters.AddWithValue("?"+item, value);
|
cmd.Parameters.AddWithValue("?"+item, value);
|
||||||
cmd.Parameters.AddWithValue("?UUID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?UUID", principalID.ToString());
|
||||||
|
|
||||||
if (ExecuteNonQuery(cmd) > 0)
|
if (ExecuteNonQuery(cmd) > 0)
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -179,18 +179,18 @@ namespace OpenSim.Data.MySQL
|
||||||
if (System.Environment.TickCount - m_LastExpire > 30000)
|
if (System.Environment.TickCount - m_LastExpire > 30000)
|
||||||
DoExpire();
|
DoExpire();
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand("insert into tokens (UUID, token, validity) values (?principalID, ?token, date_add(now(), interval ?lifetime minute))");
|
using (MySqlCommand cmd
|
||||||
|
= new MySqlCommand(
|
||||||
|
"insert into tokens (UUID, token, validity) values (?principalID, ?token, date_add(now(), interval ?lifetime minute))"))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?token", token);
|
cmd.Parameters.AddWithValue("?token", token);
|
||||||
cmd.Parameters.AddWithValue("?lifetime", lifetime.ToString());
|
cmd.Parameters.AddWithValue("?lifetime", lifetime.ToString());
|
||||||
|
|
||||||
if (ExecuteNonQuery(cmd) > 0)
|
if (ExecuteNonQuery(cmd) > 0)
|
||||||
{
|
|
||||||
cmd.Dispose();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.Dispose();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,28 +199,27 @@ namespace OpenSim.Data.MySQL
|
||||||
if (System.Environment.TickCount - m_LastExpire > 30000)
|
if (System.Environment.TickCount - m_LastExpire > 30000)
|
||||||
DoExpire();
|
DoExpire();
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand("update tokens set validity = date_add(now(), interval ?lifetime minute) where UUID = ?principalID and token = ?token and validity > now()");
|
using (MySqlCommand cmd
|
||||||
|
= new MySqlCommand(
|
||||||
|
"update tokens set validity = date_add(now(), interval ?lifetime minute) where UUID = ?principalID and token = ?token and validity > now()"))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?token", token);
|
cmd.Parameters.AddWithValue("?token", token);
|
||||||
cmd.Parameters.AddWithValue("?lifetime", lifetime.ToString());
|
cmd.Parameters.AddWithValue("?lifetime", lifetime.ToString());
|
||||||
|
|
||||||
if (ExecuteNonQuery(cmd) > 0)
|
if (ExecuteNonQuery(cmd) > 0)
|
||||||
{
|
|
||||||
cmd.Dispose();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.Dispose();
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DoExpire()
|
private void DoExpire()
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand("delete from tokens where validity < now()");
|
using (MySqlCommand cmd = new MySqlCommand("delete from tokens where validity < now()"))
|
||||||
|
{
|
||||||
ExecuteNonQuery(cmd);
|
ExecuteNonQuery(cmd);
|
||||||
|
}
|
||||||
cmd.Dispose();
|
|
||||||
|
|
||||||
m_LastExpire = System.Environment.TickCount;
|
m_LastExpire = System.Environment.TickCount;
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,14 +52,15 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
public bool Delete(UUID principalID, string name)
|
public bool Delete(UUID principalID, string name)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = ?PrincipalID and `Name` = ?Name", m_Realm);
|
cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = ?PrincipalID and `Name` = ?Name", m_Realm);
|
||||||
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?Name", name);
|
cmd.Parameters.AddWithValue("?Name", name);
|
||||||
|
|
||||||
if (ExecuteNonQuery(cmd) > 0)
|
if (ExecuteNonQuery(cmd) > 0)
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,34 +49,38 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
public bool Delete(string principalID, string friend)
|
public bool Delete(string principalID, string friend)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
cmd.CommandText = String.Format("delete from {0} where PrincipalID = ?PrincipalID and Friend = ?Friend", m_Realm);
|
cmd.CommandText = String.Format("delete from {0} where PrincipalID = ?PrincipalID and Friend = ?Friend", m_Realm);
|
||||||
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?Friend", friend);
|
cmd.Parameters.AddWithValue("?Friend", friend);
|
||||||
|
|
||||||
ExecuteNonQuery(cmd);
|
ExecuteNonQuery(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FriendsData[] GetFriends(UUID principalID)
|
public FriendsData[] GetFriends(UUID principalID)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = ?PrincipalID", m_Realm);
|
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = ?PrincipalID", m_Realm);
|
||||||
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
|
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
|
||||||
|
|
||||||
return DoQuery(cmd);
|
return DoQuery(cmd);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public FriendsData[] GetFriends(string principalID)
|
public FriendsData[] GetFriends(string principalID)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID LIKE ?PrincipalID", m_Realm);
|
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID LIKE ?PrincipalID", m_Realm);
|
||||||
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString() + '%');
|
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString() + '%');
|
||||||
|
|
||||||
return DoQuery(cmd);
|
return DoQuery(cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
|
@ -467,7 +467,8 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
|
|
||||||
MySqlCommand result = new MySqlCommand(sql, dbcon);
|
using (MySqlCommand result = new MySqlCommand(sql, dbcon))
|
||||||
|
{
|
||||||
result.Parameters.AddWithValue("?inventoryID", item.ID.ToString());
|
result.Parameters.AddWithValue("?inventoryID", item.ID.ToString());
|
||||||
result.Parameters.AddWithValue("?assetID", item.AssetID.ToString());
|
result.Parameters.AddWithValue("?assetID", item.AssetID.ToString());
|
||||||
result.Parameters.AddWithValue("?assetType", item.AssetType.ToString());
|
result.Parameters.AddWithValue("?assetType", item.AssetType.ToString());
|
||||||
|
@ -491,19 +492,18 @@ namespace OpenSim.Data.MySQL
|
||||||
result.Parameters.AddWithValue("?flags", item.Flags);
|
result.Parameters.AddWithValue("?flags", item.Flags);
|
||||||
|
|
||||||
lock (m_dbLock)
|
lock (m_dbLock)
|
||||||
{
|
|
||||||
result.ExecuteNonQuery();
|
result.ExecuteNonQuery();
|
||||||
}
|
|
||||||
|
|
||||||
result.Dispose();
|
result.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
result = new MySqlCommand("update inventoryfolders set version=version+1 where folderID = ?folderID", dbcon);
|
using (MySqlCommand result = new MySqlCommand("update inventoryfolders set version=version+1 where folderID = ?folderID", dbcon))
|
||||||
|
{
|
||||||
result.Parameters.AddWithValue("?folderID", item.Folder.ToString());
|
result.Parameters.AddWithValue("?folderID", item.Folder.ToString());
|
||||||
|
|
||||||
lock (m_dbLock)
|
lock (m_dbLock)
|
||||||
{
|
|
||||||
result.ExecuteNonQuery();
|
result.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
result.Dispose();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (MySqlException e)
|
catch (MySqlException e)
|
||||||
|
@ -533,11 +533,11 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand("DELETE FROM inventoryitems WHERE inventoryID=?uuid", dbcon);
|
using (MySqlCommand cmd = new MySqlCommand("DELETE FROM inventoryitems WHERE inventoryID=?uuid", dbcon))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?uuid", itemID.ToString());
|
cmd.Parameters.AddWithValue("?uuid", itemID.ToString());
|
||||||
|
|
||||||
lock (m_dbLock)
|
lock (m_dbLock)
|
||||||
{
|
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -579,7 +579,8 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand(sql, dbcon);
|
using (MySqlCommand cmd = new MySqlCommand(sql, dbcon))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString());
|
cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?agentID", folder.Owner.ToString());
|
cmd.Parameters.AddWithValue("?agentID", folder.Owner.ToString());
|
||||||
cmd.Parameters.AddWithValue("?parentFolderID", folder.ParentID.ToString());
|
cmd.Parameters.AddWithValue("?parentFolderID", folder.ParentID.ToString());
|
||||||
|
@ -600,6 +601,7 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Updates an inventory folder
|
/// Updates an inventory folder
|
||||||
|
@ -624,7 +626,8 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand(sql, dbcon);
|
using (MySqlCommand cmd = new MySqlCommand(sql, dbcon))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString());
|
cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?parentFolderID", folder.ParentID.ToString());
|
cmd.Parameters.AddWithValue("?parentFolderID", folder.ParentID.ToString());
|
||||||
|
|
||||||
|
@ -641,6 +644,7 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Append a list of all the child folders of a parent folder
|
/// Append a list of all the child folders of a parent folder
|
||||||
|
|
|
@ -63,14 +63,15 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
public void LogoutRegionAgents(UUID regionID)
|
public void LogoutRegionAgents(UUID regionID)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
cmd.CommandText = String.Format("delete from {0} where `RegionID`=?RegionID", m_Realm);
|
cmd.CommandText = String.Format("delete from {0} where `RegionID`=?RegionID", m_Realm);
|
||||||
|
|
||||||
cmd.Parameters.AddWithValue("?RegionID", regionID.ToString());
|
cmd.Parameters.AddWithValue("?RegionID", regionID.ToString());
|
||||||
|
|
||||||
ExecuteNonQuery(cmd);
|
ExecuteNonQuery(cmd);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public bool ReportAgent(UUID sessionID, UUID regionID)
|
public bool ReportAgent(UUID sessionID, UUID regionID)
|
||||||
{
|
{
|
||||||
|
@ -81,8 +82,8 @@ namespace OpenSim.Data.MySQL
|
||||||
if (regionID == UUID.Zero)
|
if (regionID == UUID.Zero)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
cmd.CommandText = String.Format("update {0} set RegionID=?RegionID, LastSeen=NOW() where `SessionID`=?SessionID", m_Realm);
|
cmd.CommandText = String.Format("update {0} set RegionID=?RegionID, LastSeen=NOW() where `SessionID`=?SessionID", m_Realm);
|
||||||
|
|
||||||
cmd.Parameters.AddWithValue("?SessionID", sessionID.ToString());
|
cmd.Parameters.AddWithValue("?SessionID", sessionID.ToString());
|
||||||
|
@ -90,6 +91,7 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
if (ExecuteNonQuery(cmd) == 0)
|
if (ExecuteNonQuery(cmd) == 0)
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -329,11 +329,12 @@ namespace OpenSim.Data.MySQL
|
||||||
if (scopeID != UUID.Zero)
|
if (scopeID != UUID.Zero)
|
||||||
command += " and ScopeID = ?scopeID";
|
command += " and ScopeID = ?scopeID";
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand(command);
|
using (MySqlCommand cmd = new MySqlCommand(command))
|
||||||
|
{
|
||||||
cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
|
cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
|
||||||
|
|
||||||
return RunCommand(cmd);
|
return RunCommand(cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
|
@ -129,8 +129,9 @@ namespace OpenSim.Data.MySQL
|
||||||
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
MySqlCommand cmd = dbcon.CreateCommand();
|
|
||||||
|
|
||||||
|
using (MySqlCommand cmd = dbcon.CreateCommand())
|
||||||
|
{
|
||||||
foreach (SceneObjectPart prim in obj.Parts)
|
foreach (SceneObjectPart prim in obj.Parts)
|
||||||
{
|
{
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear();
|
||||||
|
@ -240,8 +241,7 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
ExecuteNonQuery(cmd);
|
ExecuteNonQuery(cmd);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
cmd.Dispose();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1865,15 +1865,15 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
RemoveItems(primID);
|
RemoveItems(primID);
|
||||||
|
|
||||||
|
if (items.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
|
||||||
{
|
{
|
||||||
dbcon.Open();
|
dbcon.Open();
|
||||||
|
|
||||||
MySqlCommand cmd = dbcon.CreateCommand();
|
using (MySqlCommand cmd = dbcon.CreateCommand())
|
||||||
|
{
|
||||||
if (items.Count == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
cmd.CommandText = "insert into primitems (" +
|
cmd.CommandText = "insert into primitems (" +
|
||||||
"invType, assetType, name, " +
|
"invType, assetType, name, " +
|
||||||
"description, creationDate, nextPermissions, " +
|
"description, creationDate, nextPermissions, " +
|
||||||
|
@ -1898,8 +1898,7 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
ExecuteNonQuery(cmd);
|
ExecuteNonQuery(cmd);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
cmd.Dispose();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,8 +66,8 @@ namespace OpenSim.Data.MySQL
|
||||||
if (words.Length > 2)
|
if (words.Length > 2)
|
||||||
return new UserAccountData[0];
|
return new UserAccountData[0];
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
if (words.Length == 1)
|
if (words.Length == 1)
|
||||||
{
|
{
|
||||||
cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search) and active=1", m_Realm);
|
cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search) and active=1", m_Realm);
|
||||||
|
@ -84,11 +84,12 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
return DoQuery(cmd);
|
return DoQuery(cmd);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public UserAccountData[] GetUsersWhere(UUID scopeID, string where)
|
public UserAccountData[] GetUsersWhere(UUID scopeID, string where)
|
||||||
{
|
{
|
||||||
MySqlCommand cmd = new MySqlCommand();
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
|
{
|
||||||
if (scopeID != UUID.Zero)
|
if (scopeID != UUID.Zero)
|
||||||
{
|
{
|
||||||
where = "(ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (" + where + ")";
|
where = "(ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (" + where + ")";
|
||||||
|
@ -101,3 +102,4 @@ namespace OpenSim.Data.MySQL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1456,6 +1456,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
PhysicsActor actor = PhysicsActor;
|
PhysicsActor actor = PhysicsActor;
|
||||||
if (actor == null)
|
if (actor == null)
|
||||||
{
|
{
|
||||||
|
SendControlsToScripts(flagsForScripts);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1632,15 +1633,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (update_movementflag && ParentID == 0)
|
if (update_movementflag && ParentID == 0)
|
||||||
Animator.UpdateMovementAnimations();
|
Animator.UpdateMovementAnimations();
|
||||||
|
|
||||||
lock (scriptedcontrols)
|
SendControlsToScripts(flagsForScripts);
|
||||||
{
|
|
||||||
if (scriptedcontrols.Count > 0)
|
|
||||||
{
|
|
||||||
// Notify the scripts only after calling UpdateMovementAnimations(), so that if a script
|
|
||||||
// (e.g., a walking script) checks which animation is active it will be the correct animation.
|
|
||||||
SendControlToScripts(flagsForScripts);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_scene.EventManager.TriggerOnClientMovement(this);
|
m_scene.EventManager.TriggerOnClientMovement(this);
|
||||||
|
@ -3830,8 +3823,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void SendControlToScripts(uint flags)
|
private void SendControlsToScripts(uint flags)
|
||||||
{
|
{
|
||||||
|
// Notify the scripts only after calling UpdateMovementAnimations(), so that if a script
|
||||||
|
// (e.g., a walking script) checks which animation is active it will be the correct animation.
|
||||||
|
lock (scriptedcontrols)
|
||||||
|
{
|
||||||
|
if (scriptedcontrols.Count <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
ScriptControlled allflags = ScriptControlled.CONTROL_ZERO;
|
ScriptControlled allflags = ScriptControlled.CONTROL_ZERO;
|
||||||
|
|
||||||
if (MouseDown)
|
if (MouseDown)
|
||||||
|
@ -3849,6 +3849,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
allflags |= ScriptControlled.CONTROL_ML_LBUTTON;
|
allflags |= ScriptControlled.CONTROL_ML_LBUTTON;
|
||||||
MouseDown = true;
|
MouseDown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_DOWN) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_DOWN) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_LBUTTON;
|
allflags |= ScriptControlled.CONTROL_LBUTTON;
|
||||||
|
@ -3860,38 +3861,44 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_FWD;
|
allflags |= ScriptControlled.CONTROL_FWD;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_BACK;
|
allflags |= ScriptControlled.CONTROL_BACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_UP;
|
allflags |= ScriptControlled.CONTROL_UP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_DOWN;
|
allflags |= ScriptControlled.CONTROL_DOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_LEFT;
|
allflags |= ScriptControlled.CONTROL_LEFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_RIGHT;
|
allflags |= ScriptControlled.CONTROL_RIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_ROT_RIGHT;
|
allflags |= ScriptControlled.CONTROL_ROT_RIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_ROT_LEFT;
|
allflags |= ScriptControlled.CONTROL_ROT_LEFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
// optimization; we have to check per script, but if nothing is pressed and nothing changed, we can skip that
|
// optimization; we have to check per script, but if nothing is pressed and nothing changed, we can skip that
|
||||||
if (allflags != ScriptControlled.CONTROL_ZERO || allflags != LastCommands)
|
if (allflags != ScriptControlled.CONTROL_ZERO || allflags != LastCommands)
|
||||||
{
|
|
||||||
lock (scriptedcontrols)
|
|
||||||
{
|
{
|
||||||
foreach (KeyValuePair<UUID, ScriptControllers> kvp in scriptedcontrols)
|
foreach (KeyValuePair<UUID, ScriptControllers> kvp in scriptedcontrols)
|
||||||
{
|
{
|
||||||
|
@ -3901,6 +3908,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
ScriptControlled localHeld = allflags & scriptControlData.eventControls; // the flags interesting for us
|
ScriptControlled localHeld = allflags & scriptControlData.eventControls; // the flags interesting for us
|
||||||
ScriptControlled localLast = LastCommands & scriptControlData.eventControls; // the activated controls in the last cycle
|
ScriptControlled localLast = LastCommands & scriptControlData.eventControls; // the activated controls in the last cycle
|
||||||
ScriptControlled localChange = localHeld ^ localLast; // the changed bits
|
ScriptControlled localChange = localHeld ^ localLast; // the changed bits
|
||||||
|
|
||||||
if (localHeld != ScriptControlled.CONTROL_ZERO || localChange != ScriptControlled.CONTROL_ZERO)
|
if (localHeld != ScriptControlled.CONTROL_ZERO || localChange != ScriptControlled.CONTROL_ZERO)
|
||||||
{
|
{
|
||||||
// only send if still pressed or just changed
|
// only send if still pressed or just changed
|
||||||
|
@ -3908,10 +3916,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
LastCommands = allflags;
|
LastCommands = allflags;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal static AgentManager.ControlFlags RemoveIgnoredControls(AgentManager.ControlFlags flags, ScriptControlled ignored)
|
internal static AgentManager.ControlFlags RemoveIgnoredControls(AgentManager.ControlFlags flags, ScriptControlled ignored)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
@ -68,11 +69,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
Vector3 position = new Vector3(200,200,21);
|
Vector3 position = new Vector3(200,200,21);
|
||||||
|
|
||||||
foreach (Border b in testborders)
|
foreach (Border b in testborders)
|
||||||
{
|
|
||||||
Assert.That(!b.TestCross(position));
|
Assert.That(!b.TestCross(position));
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
position = new Vector3(200,280,21);
|
position = new Vector3(200,280,21);
|
||||||
Assert.That(NorthBorder.TestCross(position));
|
Assert.That(NorthBorder.TestCross(position));
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
@ -44,6 +46,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
public void TestDuplicateObject()
|
public void TestDuplicateObject()
|
||||||
{
|
{
|
||||||
TestHelpers.InMethod();
|
TestHelpers.InMethod();
|
||||||
|
// TestHelpers.EnableLogging();
|
||||||
|
|
||||||
Scene scene = new SceneHelpers().SetupScene();
|
Scene scene = new SceneHelpers().SetupScene();
|
||||||
|
|
||||||
UUID ownerId = new UUID("00000000-0000-0000-0000-000000000010");
|
UUID ownerId = new UUID("00000000-0000-0000-0000-000000000010");
|
||||||
|
@ -82,6 +86,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
Assert.That(dupePart1.PhysActor, Is.Not.Null);
|
Assert.That(dupePart1.PhysActor, Is.Not.Null);
|
||||||
Assert.That(dupePart2.PhysActor, Is.Not.Null);
|
Assert.That(dupePart2.PhysActor, Is.Not.Null);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// TestHelpers.DisableLogging();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -38,7 +38,8 @@ using OpenSim.Region.Framework.Interfaces;
|
||||||
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation;
|
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation;
|
||||||
using OpenSim.Tests.Common;
|
using OpenSim.Tests.Common;
|
||||||
using OpenSim.Tests.Common.Mock;
|
using OpenSim.Tests.Common.Mock;
|
||||||
using System.Threading;
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace OpenSim.Region.Framework.Scenes.Tests
|
namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
{
|
{
|
||||||
|
|
|
@ -1922,6 +1922,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
rgb.y = texcolor.G;
|
rgb.y = texcolor.G;
|
||||||
rgb.z = texcolor.B;
|
rgb.z = texcolor.B;
|
||||||
return rgb;
|
return rgb;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3492,6 +3493,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
return m_host.UUID.ToString();
|
return m_host.UUID.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LSL_Key llGenerateKey()
|
||||||
|
{
|
||||||
|
m_host.AddScriptLPS(1);
|
||||||
|
return UUID.Random().ToString();
|
||||||
|
}
|
||||||
|
|
||||||
public void llSetBuoyancy(double buoyancy)
|
public void llSetBuoyancy(double buoyancy)
|
||||||
{
|
{
|
||||||
m_host.AddScriptLPS(1);
|
m_host.AddScriptLPS(1);
|
||||||
|
|
|
@ -105,6 +105,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||||
LSL_Integer llFloor(double f);
|
LSL_Integer llFloor(double f);
|
||||||
void llForceMouselook(int mouselook);
|
void llForceMouselook(int mouselook);
|
||||||
LSL_Float llFrand(double mag);
|
LSL_Float llFrand(double mag);
|
||||||
|
LSL_Key llGenerateKey();
|
||||||
LSL_Vector llGetAccel();
|
LSL_Vector llGetAccel();
|
||||||
LSL_Integer llGetAgentInfo(string id);
|
LSL_Integer llGetAgentInfo(string id);
|
||||||
LSL_String llGetAgentLanguage(string id);
|
LSL_String llGetAgentLanguage(string id);
|
||||||
|
|
|
@ -376,6 +376,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||||
return m_LSL_Functions.llFrand(mag);
|
return m_LSL_Functions.llFrand(mag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LSL_Key llGenerateKey()
|
||||||
|
{
|
||||||
|
return m_LSL_Functions.llGenerateKey();
|
||||||
|
}
|
||||||
|
|
||||||
public LSL_Vector llGetAccel()
|
public LSL_Vector llGetAccel()
|
||||||
{
|
{
|
||||||
return m_LSL_Functions.llGetAccel();
|
return m_LSL_Functions.llGetAccel();
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
|
||||||
|
@ -34,6 +36,37 @@ namespace OpenSim.Tests.Common
|
||||||
{
|
{
|
||||||
public class TestHelpers
|
public class TestHelpers
|
||||||
{
|
{
|
||||||
|
private static Stream EnableLoggingConfigStream
|
||||||
|
= new MemoryStream(
|
||||||
|
Encoding.UTF8.GetBytes(
|
||||||
|
@"<log4net>
|
||||||
|
<!-- A1 is set to be a ConsoleAppender -->
|
||||||
|
<appender name=""A1"" type=""log4net.Appender.ConsoleAppender"">
|
||||||
|
|
||||||
|
<!-- A1 uses PatternLayout -->
|
||||||
|
<layout type=""log4net.Layout.PatternLayout"">
|
||||||
|
<!-- Print the date in ISO 8601 format -->
|
||||||
|
<conversionPattern value=""%date [%thread] %-5level %logger %ndc - %message%newline"" />
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
||||||
|
<root>
|
||||||
|
<level value=""DEBUG"" />
|
||||||
|
<appender-ref ref=""A1"" />
|
||||||
|
</root>
|
||||||
|
</log4net>"));
|
||||||
|
|
||||||
|
private static Stream DisableLoggingConfigStream
|
||||||
|
= new MemoryStream(
|
||||||
|
Encoding.UTF8.GetBytes(
|
||||||
|
// "<?xml version=\"1.0\" encoding=\"utf-8\" ?><configuration><log4net><root><level value=\"OFF\"/><appender-ref ref=\"A1\"/></root></log4net></configuration>")));
|
||||||
|
//"<?xml version=\"1.0\" encoding=\"utf-8\" ?><configuration><log4net><root><level value=\"OFF\"/></root></log4net></configuration>")));
|
||||||
|
//"<configuration><log4net><root><level value=\"OFF\"/></root></log4net></configuration>")));
|
||||||
|
//"<configuration><log4net><root></root></log4net></configuration>")));
|
||||||
|
//"<configuration><log4net><root/></log4net></configuration>")));
|
||||||
|
"<log4net><root/></log4net>"));
|
||||||
|
|
||||||
public static bool AssertThisDelegateCausesArgumentException(TestDelegate d)
|
public static bool AssertThisDelegateCausesArgumentException(TestDelegate d)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -58,6 +91,19 @@ namespace OpenSim.Tests.Common
|
||||||
Console.WriteLine("===> In Test Method : {0} <===", stackTrace.GetFrame(1).GetMethod().Name);
|
Console.WriteLine("===> In Test Method : {0} <===", stackTrace.GetFrame(1).GetMethod().Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void EnableLogging()
|
||||||
|
{
|
||||||
|
log4net.Config.XmlConfigurator.Configure(EnableLoggingConfigStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Disable logging whilst running the tests.
|
||||||
|
/// </summary>
|
||||||
|
public static void DisableLogging()
|
||||||
|
{
|
||||||
|
log4net.Config.XmlConfigurator.Configure(DisableLoggingConfigStream);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Parse tail section into full UUID.
|
/// Parse tail section into full UUID.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
|
|
||||||
</configSections>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
|
|
||||||
<bindingRedirect oldVersion="2.0.6.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.1.4.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.2.8.0" newVersion="2.4.6.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
<log4net>
|
|
||||||
<!-- A1 is set to be a ConsoleAppender -->
|
|
||||||
<appender name="A1" type="log4net.Appender.ConsoleAppender">
|
|
||||||
|
|
||||||
<!-- A1 uses PatternLayout -->
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<!-- Print the date in ISO 8601 format -->
|
|
||||||
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
|
||||||
<root>
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="A1" />
|
|
||||||
</root>
|
|
||||||
</log4net>
|
|
||||||
</configuration>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
|
|
||||||
</configSections>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
|
|
||||||
<bindingRedirect oldVersion="2.0.6.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.1.4.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.2.8.0" newVersion="2.4.6.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
<log4net>
|
|
||||||
<!-- A1 is set to be a ConsoleAppender -->
|
|
||||||
<appender name="A1" type="log4net.Appender.ConsoleAppender">
|
|
||||||
|
|
||||||
<!-- A1 uses PatternLayout -->
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<!-- Print the date in ISO 8601 format -->
|
|
||||||
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
|
||||||
<root>
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="A1" />
|
|
||||||
</root>
|
|
||||||
</log4net>
|
|
||||||
</configuration>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
|
|
||||||
</configSections>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
|
|
||||||
<bindingRedirect oldVersion="2.0.6.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.1.4.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.2.8.0" newVersion="2.4.6.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
<log4net>
|
|
||||||
<!-- A1 is set to be a ConsoleAppender -->
|
|
||||||
<appender name="A1" type="log4net.Appender.ConsoleAppender">
|
|
||||||
|
|
||||||
<!-- A1 uses PatternLayout -->
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<!-- Print the date in ISO 8601 format -->
|
|
||||||
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
|
||||||
<root>
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="A1" />
|
|
||||||
</root>
|
|
||||||
</log4net>
|
|
||||||
</configuration>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
|
|
||||||
</configSections>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
|
|
||||||
<bindingRedirect oldVersion="2.0.6.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.1.4.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.2.8.0" newVersion="2.4.6.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
<log4net>
|
|
||||||
<!-- A1 is set to be a ConsoleAppender -->
|
|
||||||
<appender name="A1" type="log4net.Appender.ConsoleAppender">
|
|
||||||
|
|
||||||
<!-- A1 uses PatternLayout -->
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<!-- Print the date in ISO 8601 format -->
|
|
||||||
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
|
||||||
<root>
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="A1" />
|
|
||||||
</root>
|
|
||||||
</log4net>
|
|
||||||
</configuration>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
|
|
||||||
</configSections>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
|
|
||||||
<bindingRedirect oldVersion="2.0.6.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.1.4.0" newVersion="2.4.6.0" />
|
|
||||||
<bindingRedirect oldVersion="2.2.8.0" newVersion="2.4.6.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
<log4net>
|
|
||||||
<!-- A1 is set to be a ConsoleAppender -->
|
|
||||||
<appender name="A1" type="log4net.Appender.ConsoleAppender">
|
|
||||||
|
|
||||||
<!-- A1 uses PatternLayout -->
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<!-- Print the date in ISO 8601 format -->
|
|
||||||
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- Set root logger level to DEBUG and its only appender to A1 -->
|
|
||||||
<root>
|
|
||||||
<level value="DEBUG" />
|
|
||||||
<appender-ref ref="A1" />
|
|
||||||
</root>
|
|
||||||
</log4net>
|
|
||||||
</configuration>
|
|
Loading…
Reference in New Issue