Update svn properties. Formatting cleanup.
parent
5b0d47dddb
commit
0462510956
|
@ -23,9 +23,10 @@ OpenSim Developers
|
||||||
* Danx0r
|
* Danx0r
|
||||||
* Dalien
|
* Dalien
|
||||||
* Darok
|
* Darok
|
||||||
* chi11ken (3Di)
|
* chi11ken (Genkii)
|
||||||
* adjohn (3Di)
|
* adjohn (Genkii)
|
||||||
* Alondria
|
* Alondria
|
||||||
|
* Dr Scofield (IBM)
|
||||||
|
|
||||||
|
|
||||||
Patches
|
Patches
|
||||||
|
@ -38,7 +39,6 @@ Patches
|
||||||
* daTwitch
|
* daTwitch
|
||||||
* mikkopa/_someone - RealXtend
|
* mikkopa/_someone - RealXtend
|
||||||
* openlifegrid.com
|
* openlifegrid.com
|
||||||
* Dr Scofield (IBM)
|
|
||||||
* Daedius
|
* Daedius
|
||||||
* alex_carnell
|
* alex_carnell
|
||||||
* webmage (IBM)
|
* webmage (IBM)
|
||||||
|
@ -81,8 +81,8 @@ This software uses components from the following developers:
|
||||||
* NUnit (http://www.nunit.org)
|
* NUnit (http://www.nunit.org)
|
||||||
* AGEIA Inc. (PhysX)
|
* AGEIA Inc. (PhysX)
|
||||||
* Russel L. Smith (ODE)
|
* Russel L. Smith (ODE)
|
||||||
* Prebuild ( http://sourceforge.net/projects/dnpb/ )
|
* Prebuild (http://sourceforge.net/projects/dnpb/)
|
||||||
* LibSecondLife ( http://www.libsecondlife.org/wiki/Main_Page )
|
* LibSecondLife (http://www.libsecondlife.org/wiki/Main_Page)
|
||||||
|
|
||||||
|
|
||||||
In addition, we would like to thank:
|
In addition, we would like to thank:
|
||||||
|
|
|
@ -53,9 +53,12 @@ namespace OpenSim.Data.MySQL
|
||||||
/// </summary>
|
/// </summary>
|
||||||
override public void Initialise(string connect)
|
override public void Initialise(string connect)
|
||||||
{
|
{
|
||||||
if (connect != String.Empty) {
|
if (connect != String.Empty)
|
||||||
|
{
|
||||||
database = new MySQLManager(connect);
|
database = new MySQLManager(connect);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
m_log.Warn("Using deprecated mysql_connection.ini. Please update database_connect in GridServer_Config.xml and we'll use that instead");
|
m_log.Warn("Using deprecated mysql_connection.ini. Please update database_connect in GridServer_Config.xml and we'll use that instead");
|
||||||
IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
|
IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
|
||||||
string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
|
string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
|
||||||
|
@ -65,9 +68,8 @@ namespace OpenSim.Data.MySQL
|
||||||
string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
|
string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
|
||||||
string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
|
string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
|
||||||
|
|
||||||
database =
|
database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword,
|
||||||
new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
|
settingPooling, settingPort);
|
||||||
settingPort);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TestTables();
|
TestTables();
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
public void Initialise(string connect)
|
public void Initialise(string connect)
|
||||||
{
|
{
|
||||||
if(connect != String.Empty)
|
if (connect != String.Empty)
|
||||||
{
|
{
|
||||||
database = new MySQLManager(connect);
|
database = new MySQLManager(connect);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace OpenSim.Data.MySQL
|
||||||
/// An interface to the log database for MySQL
|
/// An interface to the log database for MySQL
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal class MySQLLogData : ILogData
|
internal class MySQLLogData : ILogData
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The database manager
|
/// The database manager
|
||||||
|
@ -46,9 +46,12 @@ namespace OpenSim.Data.MySQL
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Initialise(string connect)
|
public void Initialise(string connect)
|
||||||
{
|
{
|
||||||
if (connect != String.Empty) {
|
if (connect != String.Empty)
|
||||||
|
{
|
||||||
database = new MySQLManager(connect);
|
database = new MySQLManager(connect);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
m_log.Warn("Using deprecated mysql_connection.ini. Please update database_connect in GridServer_Config.xml and we'll use that instead");
|
m_log.Warn("Using deprecated mysql_connection.ini. Please update database_connect in GridServer_Config.xml and we'll use that instead");
|
||||||
|
|
||||||
IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
|
IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
|
||||||
|
@ -59,9 +62,8 @@ namespace OpenSim.Data.MySQL
|
||||||
string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
|
string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
|
||||||
string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
|
string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
|
||||||
|
|
||||||
database =
|
database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword,
|
||||||
new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
|
settingPooling, settingPort);
|
||||||
settingPort);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -255,28 +255,28 @@ namespace OpenSim.Framework.Communications
|
||||||
remote_client.SendNameReply(uuid, names[0], names[1]);
|
remote_client.SendNameReply(uuid, names[0], names[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string[] doUUIDNameRequest(LLUUID uuid)
|
private string[] doUUIDNameRequest(LLUUID uuid)
|
||||||
{
|
{
|
||||||
string[] returnstring = new string[0];
|
string[] returnstring = new string[0];
|
||||||
bool doLookup = false;
|
bool doLookup = false;
|
||||||
|
|
||||||
|
|
||||||
lock (m_nameRequestCache)
|
lock (m_nameRequestCache)
|
||||||
{
|
{
|
||||||
if (m_nameRequestCache.ContainsKey(uuid))
|
if (m_nameRequestCache.ContainsKey(uuid))
|
||||||
{
|
{
|
||||||
returnstring = m_nameRequestCache[uuid];
|
returnstring = m_nameRequestCache[uuid];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// we don't want to lock the dictionary while we're doing the lookup
|
// we don't want to lock the dictionary while we're doing the lookup
|
||||||
doLookup = true;
|
doLookup = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doLookup) {
|
if (doLookup) {
|
||||||
UserProfileData profileData = m_userService.GetUserProfile(uuid);
|
UserProfileData profileData = m_userService.GetUserProfile(uuid);
|
||||||
if (profileData != null)
|
if (profileData != null)
|
||||||
|
@ -293,7 +293,7 @@ namespace OpenSim.Framework.Communications
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return returnstring;
|
return returnstring;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool UUIDNameCachedTest(LLUUID uuid)
|
public bool UUIDNameCachedTest(LLUUID uuid)
|
||||||
|
@ -311,7 +311,7 @@ namespace OpenSim.Framework.Communications
|
||||||
string lastname = names[1];
|
string lastname = names[1];
|
||||||
|
|
||||||
return firstname + " " + lastname;
|
return firstname + " " + lastname;
|
||||||
|
|
||||||
}
|
}
|
||||||
return "(hippos)";
|
return "(hippos)";
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,8 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
string handlerKey = GetHandlerKey(httpMethod, path);
|
string handlerKey = GetHandlerKey(httpMethod, path);
|
||||||
|
|
||||||
lock(m_streamHandlers) {
|
lock (m_streamHandlers)
|
||||||
|
{
|
||||||
if (!m_streamHandlers.ContainsKey(handlerKey))
|
if (!m_streamHandlers.ContainsKey(handlerKey))
|
||||||
{
|
{
|
||||||
//m_log.DebugFormat("[BASE HTTP SERVER]: Adding handler key {0}", handlerKey);
|
//m_log.DebugFormat("[BASE HTTP SERVER]: Adding handler key {0}", handlerKey);
|
||||||
|
@ -100,7 +101,8 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
public bool AddXmlRPCHandler(string method, XmlRpcMethod handler)
|
public bool AddXmlRPCHandler(string method, XmlRpcMethod handler)
|
||||||
{
|
{
|
||||||
lock(m_rpcHandlers) {
|
lock (m_rpcHandlers)
|
||||||
|
{
|
||||||
if (!m_rpcHandlers.ContainsKey(method))
|
if (!m_rpcHandlers.ContainsKey(method))
|
||||||
{
|
{
|
||||||
m_rpcHandlers.Add(method, handler);
|
m_rpcHandlers.Add(method, handler);
|
||||||
|
@ -114,7 +116,8 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
public bool AddHTTPHandler(string method, GenericHTTPMethod handler)
|
public bool AddHTTPHandler(string method, GenericHTTPMethod handler)
|
||||||
{
|
{
|
||||||
lock(m_HTTPHandlers) {
|
lock (m_HTTPHandlers)
|
||||||
|
{
|
||||||
if (!m_HTTPHandlers.ContainsKey(method))
|
if (!m_HTTPHandlers.ContainsKey(method))
|
||||||
{
|
{
|
||||||
m_HTTPHandlers.Add(method, handler);
|
m_HTTPHandlers.Add(method, handler);
|
||||||
|
@ -132,7 +135,8 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
public bool AddAgentHandler(string agent, IHttpAgentHandler handler)
|
public bool AddAgentHandler(string agent, IHttpAgentHandler handler)
|
||||||
{
|
{
|
||||||
lock(m_agentHandlers) {
|
lock (m_agentHandlers)
|
||||||
|
{
|
||||||
if (!m_agentHandlers.ContainsKey(agent))
|
if (!m_agentHandlers.ContainsKey(agent))
|
||||||
{
|
{
|
||||||
m_agentHandlers.Add(agent, handler);
|
m_agentHandlers.Add(agent, handler);
|
||||||
|
@ -171,7 +175,8 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
if (TryGetAgentHandler(request, response, out agentHandler))
|
if (TryGetAgentHandler(request, response, out agentHandler))
|
||||||
{
|
{
|
||||||
if (HandleAgentRequest(agentHandler, request, response)) {
|
if (HandleAgentRequest(agentHandler, request, response))
|
||||||
|
{
|
||||||
m_log.DebugFormat("[HTTP-AGENT] Handler located for {0}", request.UserAgent);
|
m_log.DebugFormat("[HTTP-AGENT] Handler located for {0}", request.UserAgent);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace OpenSim.Framework.Servers
|
||||||
public static OSHttpRequestPump[] Pumps(OSHttpServer server, int poolSize)
|
public static OSHttpRequestPump[] Pumps(OSHttpServer server, int poolSize)
|
||||||
{
|
{
|
||||||
OSHttpRequestPump[] pumps = new OSHttpRequestPump[poolSize];
|
OSHttpRequestPump[] pumps = new OSHttpRequestPump[poolSize];
|
||||||
for(int i = 0; i < pumps.Length; i++)
|
for (int i = 0; i < pumps.Length; i++)
|
||||||
{
|
{
|
||||||
pumps[i]._httpServer = server;
|
pumps[i]._httpServer = server;
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
// thread identifier
|
// thread identifier
|
||||||
protected string _engineId;
|
protected string _engineId;
|
||||||
public string EngineID
|
public string EngineID
|
||||||
{
|
{
|
||||||
get { return _engineId; }
|
get { return _engineId; }
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ namespace OpenSim.Framework.Servers
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Instantiate an HTTPS server.
|
/// Instantiate an HTTPS server.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public OSHttpServer(IPAddress address, int port, X509Certificate certificate, int poolSize) :
|
public OSHttpServer(IPAddress address, int port, X509Certificate certificate, int poolSize) :
|
||||||
this(address, port, poolSize)
|
this(address, port, poolSize)
|
||||||
{
|
{
|
||||||
_engineId = String.Format("OSHttpServer [HTTPS:{0}/ps:{1}]", port, poolSize);
|
_engineId = String.Format("OSHttpServer [HTTPS:{0}/ps:{1}]", port, poolSize);
|
||||||
|
@ -96,7 +96,7 @@ namespace OpenSim.Framework.Servers
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Start the HTTP server engine.
|
/// Start the HTTP server engine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Start()
|
public void Start()
|
||||||
{
|
{
|
||||||
_engine = new Thread(new ThreadStart(Engine));
|
_engine = new Thread(new ThreadStart(Engine));
|
||||||
_engine.Name = _engineId;
|
_engine.Name = _engineId;
|
||||||
|
@ -107,13 +107,13 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void Engine()
|
private void Engine()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
// do stuff
|
// do stuff
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
{
|
{
|
||||||
public delegate bool PacketMethod(IClientAPI simClient, Packet packet);
|
public delegate bool PacketMethod(IClientAPI simClient, Packet packet);
|
||||||
|
|
||||||
public class PacketDupeLimiter
|
public class PacketDupeLimiter
|
||||||
{
|
{
|
||||||
public PacketType pktype;
|
public PacketType pktype;
|
||||||
public int timeIn;
|
public int timeIn;
|
||||||
|
@ -658,7 +658,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
{
|
{
|
||||||
// this will normally trigger at least one packet (ping response)
|
// this will normally trigger at least one packet (ping response)
|
||||||
SendStartPingCheck(0);
|
SendStartPingCheck(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -666,7 +665,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
// Something received in the meantime - we can reset the counters
|
// Something received in the meantime - we can reset the counters
|
||||||
m_probesWithNoIngressPackets = 0;
|
m_probesWithNoIngressPackets = 0;
|
||||||
m_lastPacketsReceived = m_packetsReceived;
|
m_lastPacketsReceived = m_packetsReceived;
|
||||||
|
|
||||||
}
|
}
|
||||||
//SendPacketStats();
|
//SendPacketStats();
|
||||||
}
|
}
|
||||||
|
@ -726,7 +724,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
// Previously ClientView.API partial class
|
// Previously ClientView.API partial class
|
||||||
public event Action<IClientAPI> OnLogout;
|
public event Action<IClientAPI> OnLogout;
|
||||||
public event ObjectPermissions OnObjectPermissions;
|
public event ObjectPermissions OnObjectPermissions;
|
||||||
|
|
||||||
public event Action<IClientAPI> OnConnectionClosed;
|
public event Action<IClientAPI> OnConnectionClosed;
|
||||||
public event ViewerEffectEventHandler OnViewerEffect;
|
public event ViewerEffectEventHandler OnViewerEffect;
|
||||||
public event ImprovedInstantMessage OnInstantMessage;
|
public event ImprovedInstantMessage OnInstantMessage;
|
||||||
|
@ -788,12 +785,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public event DisconnectUser OnDisconnectUser;
|
public event DisconnectUser OnDisconnectUser;
|
||||||
public event RequestAvatarProperties OnRequestAvatarProperties;
|
public event RequestAvatarProperties OnRequestAvatarProperties;
|
||||||
public event SetAlwaysRun OnSetAlwaysRun;
|
public event SetAlwaysRun OnSetAlwaysRun;
|
||||||
|
|
||||||
public event FetchInventory OnAgentDataUpdateRequest;
|
public event FetchInventory OnAgentDataUpdateRequest;
|
||||||
public event FetchInventory OnUserInfoRequest;
|
public event FetchInventory OnUserInfoRequest;
|
||||||
public event TeleportLocationRequest OnSetStartLocationRequest;
|
public event TeleportLocationRequest OnSetStartLocationRequest;
|
||||||
public event UpdateAvatarProperties OnUpdateAvatarProperties;
|
public event UpdateAvatarProperties OnUpdateAvatarProperties;
|
||||||
|
|
||||||
public event CreateNewInventoryItem OnCreateNewInventoryItem;
|
public event CreateNewInventoryItem OnCreateNewInventoryItem;
|
||||||
public event CreateInventoryFolder OnCreateNewInventoryFolder;
|
public event CreateInventoryFolder OnCreateNewInventoryFolder;
|
||||||
public event UpdateInventoryFolder OnUpdateInventoryFolder;
|
public event UpdateInventoryFolder OnUpdateInventoryFolder;
|
||||||
|
@ -816,9 +811,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public event MoveTaskInventory OnMoveTaskItem;
|
public event MoveTaskInventory OnMoveTaskItem;
|
||||||
public event RemoveTaskInventory OnRemoveTaskItem;
|
public event RemoveTaskInventory OnRemoveTaskItem;
|
||||||
public event RequestAsset OnRequestAsset;
|
public event RequestAsset OnRequestAsset;
|
||||||
|
|
||||||
public event UUIDNameRequest OnNameFromUUIDRequest;
|
public event UUIDNameRequest OnNameFromUUIDRequest;
|
||||||
|
|
||||||
public event ParcelAccessListRequest OnParcelAccessListRequest;
|
public event ParcelAccessListRequest OnParcelAccessListRequest;
|
||||||
public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
|
public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
|
||||||
public event ParcelPropertiesRequest OnParcelPropertiesRequest;
|
public event ParcelPropertiesRequest OnParcelPropertiesRequest;
|
||||||
|
@ -829,36 +822,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
|
public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
|
||||||
public event ParcelAbandonRequest OnParcelAbandonRequest;
|
public event ParcelAbandonRequest OnParcelAbandonRequest;
|
||||||
public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
|
public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
|
||||||
|
|
||||||
public event RegionInfoRequest OnRegionInfoRequest;
|
public event RegionInfoRequest OnRegionInfoRequest;
|
||||||
public event EstateCovenantRequest OnEstateCovenantRequest;
|
public event EstateCovenantRequest OnEstateCovenantRequest;
|
||||||
|
|
||||||
public event FriendActionDelegate OnApproveFriendRequest;
|
public event FriendActionDelegate OnApproveFriendRequest;
|
||||||
public event FriendActionDelegate OnDenyFriendRequest;
|
public event FriendActionDelegate OnDenyFriendRequest;
|
||||||
public event FriendshipTermination OnTerminateFriendship;
|
public event FriendshipTermination OnTerminateFriendship;
|
||||||
|
|
||||||
public event PacketStats OnPacketStats;
|
public event PacketStats OnPacketStats;
|
||||||
|
|
||||||
public event MoneyTransferRequest OnMoneyTransferRequest;
|
public event MoneyTransferRequest OnMoneyTransferRequest;
|
||||||
public event EconomyDataRequest OnEconomyDataRequest;
|
public event EconomyDataRequest OnEconomyDataRequest;
|
||||||
|
|
||||||
public event MoneyBalanceRequest OnMoneyBalanceRequest;
|
public event MoneyBalanceRequest OnMoneyBalanceRequest;
|
||||||
public event ParcelBuy OnParcelBuy;
|
public event ParcelBuy OnParcelBuy;
|
||||||
|
|
||||||
public event UUIDNameRequest OnTeleportHomeRequest;
|
public event UUIDNameRequest OnTeleportHomeRequest;
|
||||||
|
|
||||||
public event UUIDNameRequest OnUUIDGroupNameRequest;
|
public event UUIDNameRequest OnUUIDGroupNameRequest;
|
||||||
|
|
||||||
public event ScriptAnswer OnScriptAnswer;
|
public event ScriptAnswer OnScriptAnswer;
|
||||||
public event RequestPayPrice OnRequestPayPrice;
|
public event RequestPayPrice OnRequestPayPrice;
|
||||||
public event AgentSit OnUndo;
|
public event AgentSit OnUndo;
|
||||||
|
|
||||||
public event ForceReleaseControls OnForceReleaseControls;
|
public event ForceReleaseControls OnForceReleaseControls;
|
||||||
|
|
||||||
public event GodLandStatRequest OnLandStatRequest;
|
public event GodLandStatRequest OnLandStatRequest;
|
||||||
|
|
||||||
public event RequestObjectPropertiesFamily OnObjectGroupRequest;
|
public event RequestObjectPropertiesFamily OnObjectGroupRequest;
|
||||||
|
|
||||||
public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
||||||
public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
||||||
public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
||||||
|
@ -1049,7 +1030,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void DoSendLayerData(object o)
|
private void DoSendLayerData(object o)
|
||||||
{
|
{
|
||||||
float[] map = (float[])o;
|
float[] map = (float[])o;
|
||||||
|
@ -1083,7 +1063,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
OutPacket(layerpack, ThrottleOutPacketType.Land);
|
OutPacket(layerpack, ThrottleOutPacketType.Land);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sends a specified patch to a client
|
/// Sends a specified patch to a client
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1449,7 +1428,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
if (i < MAX_ITEMS_PER_PACKET)
|
if (i < MAX_ITEMS_PER_PACKET)
|
||||||
{
|
{
|
||||||
|
|
||||||
OutPacket(descend, ThrottleOutPacketType.Asset);
|
OutPacket(descend, ThrottleOutPacketType.Asset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1748,7 +1726,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
economyData.Info.TeleportPriceExponent = TeleportPriceExponent;
|
economyData.Info.TeleportPriceExponent = TeleportPriceExponent;
|
||||||
economyData.Header.Reliable = true;
|
economyData.Header.Reliable = true;
|
||||||
OutPacket(economyData, ThrottleOutPacketType.Unknown);
|
OutPacket(economyData, ThrottleOutPacketType.Unknown);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
|
public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
|
||||||
|
@ -2209,7 +2186,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate);
|
ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// TODO: don't create new blocks if recycling an old packet
|
// TODO: don't create new blocks if recycling an old packet
|
||||||
outPacket.RegionData.RegionHandle = regionHandle;
|
outPacket.RegionData.RegionHandle = regionHandle;
|
||||||
|
@ -2256,8 +2233,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
outPacket.ObjectData[0].OwnerID = ownerID;
|
outPacket.ObjectData[0].OwnerID = ownerID;
|
||||||
outPacket.ObjectData[0].Gain = (float) SoundGain;
|
outPacket.ObjectData[0].Gain = (float) SoundGain;
|
||||||
outPacket.ObjectData[0].Radius = (float) SoundRadius;
|
outPacket.ObjectData[0].Radius = (float) SoundRadius;
|
||||||
outPacket.ObjectData[0].Flags = SoundFlags;
|
outPacket.ObjectData[0].Flags = SoundFlags;
|
||||||
|
|
||||||
|
|
||||||
byte[] pb = pos.GetBytes();
|
byte[] pb = pos.GetBytes();
|
||||||
Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length);
|
Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length);
|
||||||
|
@ -2318,6 +2294,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
terse.Header.Zerocoded = true;
|
terse.Header.Zerocoded = true;
|
||||||
OutPacket(terse, ThrottleOutPacketType.Task);
|
OutPacket(terse, ThrottleOutPacketType.Task);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, LLUUID AssetFullID)
|
public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, LLUUID AssetFullID)
|
||||||
{
|
{
|
||||||
AssetUploadCompletePacket newPack = new AssetUploadCompletePacket();
|
AssetUploadCompletePacket newPack = new AssetUploadCompletePacket();
|
||||||
|
@ -2327,6 +2304,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
newPack.Header.Zerocoded = true;
|
newPack.Header.Zerocoded = true;
|
||||||
OutPacket(newPack, ThrottleOutPacketType.Asset);
|
OutPacket(newPack, ThrottleOutPacketType.Asset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendXferRequest(ulong XferID, short AssetType, LLUUID vFileID, byte FilePath, byte[] FileName)
|
public void SendXferRequest(ulong XferID, short AssetType, LLUUID vFileID, byte FilePath, byte[] FileName)
|
||||||
{
|
{
|
||||||
RequestXferPacket newPack = new RequestXferPacket();
|
RequestXferPacket newPack = new RequestXferPacket();
|
||||||
|
@ -2337,8 +2315,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
newPack.XferID.Filename = FileName;
|
newPack.XferID.Filename = FileName;
|
||||||
newPack.Header.Zerocoded = true;
|
newPack.Header.Zerocoded = true;
|
||||||
OutPacket(newPack, ThrottleOutPacketType.Asset);
|
OutPacket(newPack, ThrottleOutPacketType.Asset);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendConfirmXfer(ulong xferID, uint PacketID)
|
public void SendConfirmXfer(ulong xferID, uint PacketID)
|
||||||
{
|
{
|
||||||
ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket();
|
ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket();
|
||||||
|
@ -2347,6 +2325,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
newPack.Header.Zerocoded = true;
|
newPack.Header.Zerocoded = true;
|
||||||
OutPacket(newPack, ThrottleOutPacketType.Asset);
|
OutPacket(newPack, ThrottleOutPacketType.Asset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendImagePart(ushort numParts, LLUUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec)
|
public void SendImagePart(ushort numParts, LLUUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec)
|
||||||
{
|
{
|
||||||
ImageDataPacket im = new ImageDataPacket();
|
ImageDataPacket im = new ImageDataPacket();
|
||||||
|
@ -2362,6 +2341,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
im.Header.Zerocoded = true;
|
im.Header.Zerocoded = true;
|
||||||
OutPacket(im, ThrottleOutPacketType.Texture);
|
OutPacket(im, ThrottleOutPacketType.Texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendShutdownConnectionNotice()
|
public void SendShutdownConnectionNotice()
|
||||||
{
|
{
|
||||||
OutPacket(PacketPool.Instance.GetPacket(PacketType.DisableSimulator), ThrottleOutPacketType.Unknown);
|
OutPacket(PacketPool.Instance.GetPacket(PacketType.DisableSimulator), ThrottleOutPacketType.Unknown);
|
||||||
|
@ -2449,125 +2429,126 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Estate Data Sending Methods
|
#region Estate Data Sending Methods
|
||||||
private bool convertParamStringToBool(byte[] field)
|
|
||||||
|
private bool convertParamStringToBool(byte[] field)
|
||||||
|
{
|
||||||
|
string s = Helpers.FieldToUTF8String(field);
|
||||||
|
if (s == "1" || s.ToLower() == "y" || s.ToLower() == "yes" || s.ToLower() == "t" || s.ToLower() == "true")
|
||||||
{
|
{
|
||||||
string s = Helpers.FieldToUTF8String(field);
|
return true;
|
||||||
if (s == "1" || s.ToLower() == "y" || s.ToLower() == "yes" || s.ToLower() == "t" || s.ToLower() == "true")
|
}
|
||||||
{
|
return false;
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
return false;
|
public void sendEstateManagersList(LLUUID invoice, LLUUID[] EstateManagers, uint estateID)
|
||||||
|
{
|
||||||
|
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
|
||||||
|
packet.AgentData.TransactionID = LLUUID.Random();
|
||||||
|
packet.AgentData.AgentID = this.AgentId;
|
||||||
|
packet.AgentData.SessionID = this.SessionId;
|
||||||
|
packet.MethodData.Invoice = invoice;
|
||||||
|
packet.MethodData.Method = Helpers.StringToField("setaccess");
|
||||||
|
|
||||||
|
EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + EstateManagers.Length];
|
||||||
|
|
||||||
|
for (int i = 0; i < (6 + EstateManagers.Length); i++)
|
||||||
|
{
|
||||||
|
returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
|
||||||
|
}
|
||||||
|
int j = 0;
|
||||||
|
|
||||||
|
returnblock[j].Parameter = Helpers.StringToField(estateID.ToString()); j++;
|
||||||
|
returnblock[j].Parameter = Helpers.StringToField(((int)Constants.EstateAccessCodex.EstateManagers).ToString()); j++;
|
||||||
|
returnblock[j].Parameter = Helpers.StringToField("0"); j++;
|
||||||
|
returnblock[j].Parameter = Helpers.StringToField("0"); j++;
|
||||||
|
returnblock[j].Parameter = Helpers.StringToField("0"); j++;
|
||||||
|
returnblock[j].Parameter = Helpers.StringToField(EstateManagers.Length.ToString()); j++;
|
||||||
|
for (int i = 0; i < EstateManagers.Length; i++)
|
||||||
|
{
|
||||||
|
returnblock[j].Parameter = EstateManagers[i].GetBytes(); j++;
|
||||||
|
}
|
||||||
|
packet.ParamList = returnblock;
|
||||||
|
packet.Header.Reliable = false;
|
||||||
|
this.OutPacket(packet, ThrottleOutPacketType.Task);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args)
|
||||||
|
{
|
||||||
|
RegionInfoPacket rinfopack = new RegionInfoPacket();
|
||||||
|
RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock();
|
||||||
|
rinfopack.AgentData.AgentID = this.AgentId;
|
||||||
|
rinfopack.AgentData.SessionID = this.SessionId;
|
||||||
|
rinfoblk.BillableFactor =args.billableFactor;
|
||||||
|
rinfoblk.EstateID = args.estateID;
|
||||||
|
rinfoblk.MaxAgents = args.maxAgents;
|
||||||
|
rinfoblk.ObjectBonusFactor =args.objectBonusFactor;
|
||||||
|
rinfoblk.ParentEstateID = args.parentEstateID;
|
||||||
|
rinfoblk.PricePerMeter = args.pricePerMeter;
|
||||||
|
rinfoblk.RedirectGridX = args.redirectGridX;
|
||||||
|
rinfoblk.RedirectGridY = args.redirectGridY;
|
||||||
|
rinfoblk.RegionFlags = args.regionFlags;
|
||||||
|
rinfoblk.SimAccess = args.simAccess;
|
||||||
|
rinfoblk.SunHour = args.sunHour;
|
||||||
|
rinfoblk.TerrainLowerLimit = args.terrainLowerLimit;
|
||||||
|
rinfoblk.TerrainRaiseLimit = args.terrainRaiseLimit;
|
||||||
|
rinfoblk.UseEstateSun = args.useEstateSun;
|
||||||
|
rinfoblk.WaterHeight = args.waterHeight;
|
||||||
|
rinfoblk.SimName = Helpers.StringToField(args.simName);
|
||||||
|
|
||||||
|
rinfopack.RegionInfo = rinfoblk;
|
||||||
|
|
||||||
|
this.OutPacket(rinfopack, ThrottleOutPacketType.Task);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendEstateCovenantInformation()
|
||||||
|
{
|
||||||
|
EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket();
|
||||||
|
EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
|
||||||
|
edata.CovenantID = m_scene.RegionInfo.CovenantID;
|
||||||
|
edata.CovenantTimestamp = 0;
|
||||||
|
edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
|
||||||
|
edata.EstateName =
|
||||||
|
Helpers.StringToField(m_scene.RegionInfo.MasterAvatarFirstName + " " + m_scene.RegionInfo.MasterAvatarLastName);
|
||||||
|
einfopack.Data = edata;
|
||||||
|
this.OutPacket(einfopack, ThrottleOutPacketType.Task);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendDetailedEstateData(LLUUID invoice, string estateName, uint estateID)
|
||||||
|
{
|
||||||
|
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
|
||||||
|
packet.MethodData.Invoice = invoice;
|
||||||
|
packet.AgentData.TransactionID = LLUUID.Random();
|
||||||
|
packet.MethodData.Method = Helpers.StringToField("estateupdateinfo");
|
||||||
|
EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[9];
|
||||||
|
|
||||||
|
for (int i = 0; i < 9; i++)
|
||||||
|
{
|
||||||
|
returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendEstateManagersList(LLUUID invoice, LLUUID[] EstateManagers, uint estateID)
|
//Sending Estate Settings
|
||||||
{
|
returnblock[0].Parameter = Helpers.StringToField(estateName);
|
||||||
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
|
returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString());
|
||||||
packet.AgentData.TransactionID = LLUUID.Random();
|
returnblock[2].Parameter = Helpers.StringToField(estateID.ToString());
|
||||||
packet.AgentData.AgentID = this.AgentId;
|
|
||||||
packet.AgentData.SessionID = this.SessionId;
|
|
||||||
packet.MethodData.Invoice = invoice;
|
|
||||||
packet.MethodData.Method = Helpers.StringToField("setaccess");
|
|
||||||
|
|
||||||
EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + EstateManagers.Length];
|
// TODO: Resolve Magic numbers here
|
||||||
|
returnblock[3].Parameter = Helpers.StringToField("269516800");
|
||||||
|
returnblock[4].Parameter = Helpers.StringToField("0");
|
||||||
|
returnblock[5].Parameter = Helpers.StringToField("1");
|
||||||
|
returnblock[6].Parameter = Helpers.StringToField(m_scene.RegionInfo.RegionID.ToString());
|
||||||
|
returnblock[7].Parameter = Helpers.StringToField("1160895077");
|
||||||
|
returnblock[8].Parameter = Helpers.StringToField("1");
|
||||||
|
|
||||||
for (int i = 0; i < (6 + EstateManagers.Length); i++)
|
packet.ParamList = returnblock;
|
||||||
{
|
packet.Header.Reliable = false;
|
||||||
returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
|
//System.Console.WriteLine("[ESTATE]: SIM--->" + packet.ToString());
|
||||||
}
|
this.OutPacket(packet, ThrottleOutPacketType.Task);
|
||||||
int j = 0;
|
}
|
||||||
|
|
||||||
returnblock[j].Parameter = Helpers.StringToField(estateID.ToString()); j++;
|
|
||||||
returnblock[j].Parameter = Helpers.StringToField(((int)Constants.EstateAccessCodex.EstateManagers).ToString()); j++;
|
|
||||||
returnblock[j].Parameter = Helpers.StringToField("0"); j++;
|
|
||||||
returnblock[j].Parameter = Helpers.StringToField("0"); j++;
|
|
||||||
returnblock[j].Parameter = Helpers.StringToField("0"); j++;
|
|
||||||
returnblock[j].Parameter = Helpers.StringToField(EstateManagers.Length.ToString()); j++;
|
|
||||||
for (int i = 0; i < EstateManagers.Length; i++)
|
|
||||||
{
|
|
||||||
returnblock[j].Parameter = EstateManagers[i].GetBytes(); j++;
|
|
||||||
}
|
|
||||||
packet.ParamList = returnblock;
|
|
||||||
packet.Header.Reliable = false;
|
|
||||||
this.OutPacket(packet, ThrottleOutPacketType.Task);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args)
|
|
||||||
{
|
|
||||||
RegionInfoPacket rinfopack = new RegionInfoPacket();
|
|
||||||
RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock();
|
|
||||||
rinfopack.AgentData.AgentID = this.AgentId;
|
|
||||||
rinfopack.AgentData.SessionID = this.SessionId;
|
|
||||||
rinfoblk.BillableFactor =args.billableFactor;
|
|
||||||
rinfoblk.EstateID = args.estateID;
|
|
||||||
rinfoblk.MaxAgents = args.maxAgents;
|
|
||||||
rinfoblk.ObjectBonusFactor =args.objectBonusFactor;
|
|
||||||
rinfoblk.ParentEstateID = args.parentEstateID;
|
|
||||||
rinfoblk.PricePerMeter = args.pricePerMeter;
|
|
||||||
rinfoblk.RedirectGridX = args.redirectGridX;
|
|
||||||
rinfoblk.RedirectGridY = args.redirectGridY;
|
|
||||||
rinfoblk.RegionFlags = args.regionFlags;
|
|
||||||
rinfoblk.SimAccess = args.simAccess;
|
|
||||||
rinfoblk.SunHour = args.sunHour;
|
|
||||||
rinfoblk.TerrainLowerLimit = args.terrainLowerLimit;
|
|
||||||
rinfoblk.TerrainRaiseLimit = args.terrainRaiseLimit;
|
|
||||||
rinfoblk.UseEstateSun = args.useEstateSun;
|
|
||||||
rinfoblk.WaterHeight = args.waterHeight;
|
|
||||||
rinfoblk.SimName = Helpers.StringToField(args.simName);
|
|
||||||
|
|
||||||
|
|
||||||
rinfopack.RegionInfo = rinfoblk;
|
|
||||||
|
|
||||||
this.OutPacket(rinfopack, ThrottleOutPacketType.Task);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendEstateCovenantInformation()
|
|
||||||
{
|
|
||||||
EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket();
|
|
||||||
EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
|
|
||||||
edata.CovenantID = m_scene.RegionInfo.CovenantID;
|
|
||||||
edata.CovenantTimestamp = 0;
|
|
||||||
edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
|
|
||||||
edata.EstateName =
|
|
||||||
Helpers.StringToField(m_scene.RegionInfo.MasterAvatarFirstName + " " + m_scene.RegionInfo.MasterAvatarLastName);
|
|
||||||
einfopack.Data = edata;
|
|
||||||
this.OutPacket(einfopack, ThrottleOutPacketType.Task);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendDetailedEstateData(LLUUID invoice, string estateName, uint estateID)
|
|
||||||
{
|
|
||||||
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
|
|
||||||
packet.MethodData.Invoice = invoice;
|
|
||||||
packet.AgentData.TransactionID = LLUUID.Random();
|
|
||||||
packet.MethodData.Method = Helpers.StringToField("estateupdateinfo");
|
|
||||||
EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[9];
|
|
||||||
|
|
||||||
for (int i = 0; i < 9; i++)
|
|
||||||
{
|
|
||||||
returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Sending Estate Settings
|
|
||||||
returnblock[0].Parameter = Helpers.StringToField(estateName);
|
|
||||||
returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString());
|
|
||||||
returnblock[2].Parameter = Helpers.StringToField(estateID.ToString());
|
|
||||||
|
|
||||||
// TODO: Resolve Magic numbers here
|
|
||||||
returnblock[3].Parameter = Helpers.StringToField("269516800");
|
|
||||||
returnblock[4].Parameter = Helpers.StringToField("0");
|
|
||||||
returnblock[5].Parameter = Helpers.StringToField("1");
|
|
||||||
returnblock[6].Parameter = Helpers.StringToField(m_scene.RegionInfo.RegionID.ToString());
|
|
||||||
returnblock[7].Parameter = Helpers.StringToField("1160895077");
|
|
||||||
returnblock[8].Parameter = Helpers.StringToField("1");
|
|
||||||
|
|
||||||
packet.ParamList = returnblock;
|
|
||||||
packet.Header.Reliable = false;
|
|
||||||
//System.Console.WriteLine("[ESTATE]: SIM--->" + packet.ToString());
|
|
||||||
this.OutPacket(packet, ThrottleOutPacketType.Task);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Land Data Sending Methods
|
#region Land Data Sending Methods
|
||||||
|
|
||||||
public void sendLandParcelOverlay(byte[] data, int sequence_id)
|
public void sendLandParcelOverlay(byte[] data, int sequence_id)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -2578,6 +2559,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
packet.Header.Zerocoded = true;
|
packet.Header.Zerocoded = true;
|
||||||
this.OutPacket(packet, ThrottleOutPacketType.Task);
|
this.OutPacket(packet, ThrottleOutPacketType.Task);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendLandProperties(IClientAPI remote_client,int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int simObjectCapacity, uint regionFlags)
|
public void sendLandProperties(IClientAPI remote_client,int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int simObjectCapacity, uint regionFlags)
|
||||||
{
|
{
|
||||||
ParcelPropertiesPacket updatePacket = (ParcelPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ParcelProperties);
|
ParcelPropertiesPacket updatePacket = (ParcelPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ParcelProperties);
|
||||||
|
@ -2743,8 +2725,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
notifyCount = 32;
|
notifyCount = 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock
|
ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock
|
||||||
= new ParcelObjectOwnersReplyPacket.DataBlock[notifyCount];
|
= new ParcelObjectOwnersReplyPacket.DataBlock[notifyCount];
|
||||||
|
|
||||||
|
@ -2773,9 +2753,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Helper Methods
|
#region Helper Methods
|
||||||
|
|
||||||
protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateAvatarImprovedBlock(uint localID, LLVector3 pos,
|
protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateAvatarImprovedBlock(uint localID, LLVector3 pos,
|
||||||
LLVector3 velocity,
|
LLVector3 velocity,
|
||||||
LLQuaternion rotation)
|
LLQuaternion rotation)
|
||||||
{
|
{
|
||||||
|
@ -2958,7 +2938,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
bytes[i++] = (byte)((rvelz >> 8) % 256);
|
bytes[i++] = (byte)((rvelz >> 8) % 256);
|
||||||
dat.Data = bytes;
|
dat.Data = bytes;
|
||||||
|
|
||||||
|
|
||||||
return dat;
|
return dat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3034,7 +3013,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
objdata.ObjectData[47] = 63;
|
objdata.ObjectData[47] = 63;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -3165,13 +3143,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack)
|
private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack)
|
||||||
|
@ -3205,8 +3181,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private bool HandleViewerEffect(IClientAPI sender, Packet Pack)
|
private bool HandleViewerEffect(IClientAPI sender, Packet Pack)
|
||||||
{
|
{
|
||||||
ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
|
ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
|
||||||
|
@ -3346,7 +3320,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
|
handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
|
||||||
if (handlerUpdatePrimSinglePosition != null)
|
if (handlerUpdatePrimSinglePosition != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Console.WriteLine("new movement position is " + pos.X + " , " + pos.Y + " , " + pos.Z);
|
// Console.WriteLine("new movement position is " + pos.X + " , " + pos.Y + " , " + pos.Z);
|
||||||
handlerUpdatePrimSinglePosition(localId, pos1, this);
|
handlerUpdatePrimSinglePosition(localId, pos1, this);
|
||||||
}
|
}
|
||||||
|
@ -3357,7 +3330,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation;
|
handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation;
|
||||||
if (handlerUpdatePrimSingleRotation != null)
|
if (handlerUpdatePrimSingleRotation != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Console.WriteLine("new tab rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
//Console.WriteLine("new tab rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
||||||
handlerUpdatePrimSingleRotation(localId, rot1, this);
|
handlerUpdatePrimSingleRotation(localId, rot1, this);
|
||||||
}
|
}
|
||||||
|
@ -3368,7 +3340,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation;
|
handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation;
|
||||||
if (handlerUpdatePrimSingleRotation != null)
|
if (handlerUpdatePrimSingleRotation != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Console.WriteLine("new mouse rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
//Console.WriteLine("new mouse rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
||||||
handlerUpdatePrimSingleRotation(localId, rot2, this);
|
handlerUpdatePrimSingleRotation(localId, rot2, this);
|
||||||
}
|
}
|
||||||
|
@ -3381,11 +3352,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
handlerUpdatePrimScale = OnUpdatePrimScale;
|
handlerUpdatePrimScale = OnUpdatePrimScale;
|
||||||
if (handlerUpdatePrimScale != null)
|
if (handlerUpdatePrimScale != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
|
// Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
|
||||||
handlerUpdatePrimScale(localId, scale1, this);
|
handlerUpdatePrimScale(localId, scale1, this);
|
||||||
|
|
||||||
|
|
||||||
handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
|
handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
|
||||||
if (handlerUpdatePrimSinglePosition != null)
|
if (handlerUpdatePrimSinglePosition != null)
|
||||||
{
|
{
|
||||||
|
@ -3405,40 +3374,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
|
|
||||||
LLQuaternion rot3 = new LLQuaternion(block.Data, 0, true);
|
LLQuaternion rot3 = new LLQuaternion(block.Data, 0, true);
|
||||||
|
|
||||||
handlerUpdatePrimRotation = OnUpdatePrimGroupRotation;
|
handlerUpdatePrimRotation = OnUpdatePrimGroupRotation;
|
||||||
if (handlerUpdatePrimRotation != null)
|
if (handlerUpdatePrimRotation != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
// Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
||||||
handlerUpdatePrimRotation(localId, rot3, this);
|
handlerUpdatePrimRotation(localId, rot3, this);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
|
|
||||||
LLVector3 pos3 = new LLVector3(block.Data, 0);
|
LLVector3 pos3 = new LLVector3(block.Data, 0);
|
||||||
LLQuaternion rot4 = new LLQuaternion(block.Data, 12, true);
|
LLQuaternion rot4 = new LLQuaternion(block.Data, 12, true);
|
||||||
|
|
||||||
handlerUpdatePrimGroupRotation = OnUpdatePrimGroupMouseRotation;
|
handlerUpdatePrimGroupRotation = OnUpdatePrimGroupMouseRotation;
|
||||||
if (handlerUpdatePrimGroupRotation != null)
|
if (handlerUpdatePrimGroupRotation != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Console.WriteLine("new rotation position is " + pos.X + " , " + pos.Y + " , " + pos.Z);
|
//Console.WriteLine("new rotation position is " + pos.X + " , " + pos.Y + " , " + pos.Z);
|
||||||
// Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
// Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
|
||||||
handlerUpdatePrimGroupRotation(localId, pos3, rot4, this);
|
handlerUpdatePrimGroupRotation(localId, pos3, rot4, this);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
|
|
||||||
LLVector3 scale2 = new LLVector3(block.Data, 12);
|
LLVector3 scale2 = new LLVector3(block.Data, 12);
|
||||||
LLVector3 pos4 = new LLVector3(block.Data, 0);
|
LLVector3 pos4 = new LLVector3(block.Data, 0);
|
||||||
|
|
||||||
handlerUpdatePrimScale = OnUpdatePrimScale;
|
handlerUpdatePrimScale = OnUpdatePrimScale;
|
||||||
if (handlerUpdatePrimScale != null)
|
if (handlerUpdatePrimScale != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
|
//Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
|
||||||
handlerUpdatePrimScale(localId, scale2, this);
|
handlerUpdatePrimScale(localId, scale2, this);
|
||||||
|
|
||||||
|
@ -3464,7 +3427,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
if (handlerUpdateVector != null)
|
if (handlerUpdateVector != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
handlerUpdateVector(localId, pos5, this);
|
handlerUpdateVector(localId, pos5, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3841,11 +3803,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
protected void AckTimer_Elapsed(object sender, ElapsedEventArgs ea)
|
protected void AckTimer_Elapsed(object sender, ElapsedEventArgs ea)
|
||||||
{
|
{
|
||||||
|
|
||||||
SendAcks();
|
SendAcks();
|
||||||
ResendUnacked();
|
ResendUnacked();
|
||||||
SendPacketStats();
|
SendPacketStats();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void SendPacketStats()
|
protected void SendPacketStats()
|
||||||
|
@ -3858,6 +3818,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
m_lastPacketsSentSentToScene = m_packetsSent;
|
m_lastPacketsSentSentToScene = m_packetsSent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ClearOldPacketDupeTracking()
|
protected void ClearOldPacketDupeTracking()
|
||||||
{
|
{
|
||||||
lock (m_dupeLimiter)
|
lock (m_dupeLimiter)
|
||||||
|
@ -3865,7 +3826,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
List<uint> toEliminate = new List<uint>();
|
List<uint> toEliminate = new List<uint>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach (uint seq in m_dupeLimiter.Keys)
|
foreach (uint seq in m_dupeLimiter.Keys)
|
||||||
{
|
{
|
||||||
PacketDupeLimiter pkdata = null;
|
PacketDupeLimiter pkdata = null;
|
||||||
|
@ -3913,7 +3873,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
private bool m_packetProcessingEnabled = true;
|
private bool m_packetProcessingEnabled = true;
|
||||||
|
|
||||||
public bool IsActive {
|
public bool IsActive
|
||||||
|
{
|
||||||
get { return m_packetProcessingEnabled; }
|
get { return m_packetProcessingEnabled; }
|
||||||
set { m_packetProcessingEnabled = value; }
|
set { m_packetProcessingEnabled = value; }
|
||||||
}
|
}
|
||||||
|
@ -3945,10 +3906,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
switch (Pack.Type)
|
switch (Pack.Type)
|
||||||
{
|
{
|
||||||
#region Scene/Avatar
|
#region Scene/Avatar
|
||||||
|
|
||||||
case PacketType.AvatarPropertiesRequest:
|
case PacketType.AvatarPropertiesRequest:
|
||||||
AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
|
AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
|
||||||
|
@ -4425,9 +4385,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Objects/m_sceneObjects
|
#region Objects/m_sceneObjects
|
||||||
|
|
||||||
case PacketType.ObjectLink:
|
case PacketType.ObjectLink:
|
||||||
ObjectLinkPacket link = (ObjectLinkPacket)Pack;
|
ObjectLinkPacket link = (ObjectLinkPacket)Pack;
|
||||||
|
@ -4816,9 +4776,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Inventory/Asset/Other related packets
|
#region Inventory/Asset/Other related packets
|
||||||
|
|
||||||
case PacketType.RequestImage:
|
case PacketType.RequestImage:
|
||||||
RequestImagePacket imageRequest = (RequestImagePacket)Pack;
|
RequestImagePacket imageRequest = (RequestImagePacket)Pack;
|
||||||
|
@ -5346,8 +5306,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
case PacketType.UUIDNameRequest:
|
case PacketType.UUIDNameRequest:
|
||||||
UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
|
UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
|
||||||
|
@ -5361,7 +5320,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#region Parcel related packets
|
#region Parcel related packets
|
||||||
|
|
||||||
case PacketType.ParcelAccessListRequest:
|
case PacketType.ParcelAccessListRequest:
|
||||||
ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack;
|
ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack;
|
||||||
|
@ -5518,14 +5477,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Estate Packets
|
#region Estate Packets
|
||||||
|
|
||||||
case PacketType.EstateOwnerMessage:
|
case PacketType.EstateOwnerMessage:
|
||||||
EstateOwnerMessagePacket messagePacket = (EstateOwnerMessagePacket)Pack;
|
EstateOwnerMessagePacket messagePacket = (EstateOwnerMessagePacket)Pack;
|
||||||
|
|
||||||
|
|
||||||
switch (Helpers.FieldToUTF8String(messagePacket.MethodData.Method))
|
switch (Helpers.FieldToUTF8String(messagePacket.MethodData.Method))
|
||||||
{
|
{
|
||||||
case "getinfo":
|
case "getinfo":
|
||||||
|
@ -5772,9 +5730,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region GodPackets
|
#region GodPackets
|
||||||
|
|
||||||
case PacketType.RequestGodlikePowers:
|
case PacketType.RequestGodlikePowers:
|
||||||
RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket)Pack;
|
RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket)Pack;
|
||||||
|
@ -5822,9 +5780,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
//OutPacket(kupack, ThrottleOutPacketType.Task);
|
//OutPacket(kupack, ThrottleOutPacketType.Task);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Economy/Transaction Packets
|
#region Economy/Transaction Packets
|
||||||
|
|
||||||
case PacketType.MoneyBalanceRequest:
|
case PacketType.MoneyBalanceRequest:
|
||||||
MoneyBalanceRequestPacket moneybalancerequestpacket = (MoneyBalanceRequestPacket)Pack;
|
MoneyBalanceRequestPacket moneybalancerequestpacket = (MoneyBalanceRequestPacket)Pack;
|
||||||
|
@ -5856,9 +5814,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region unimplemented handlers
|
#region unimplemented handlers
|
||||||
|
|
||||||
case PacketType.StartPingCheck:
|
case PacketType.StartPingCheck:
|
||||||
// Send the client the ping response back
|
// Send the client the ping response back
|
||||||
|
@ -5935,7 +5893,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
m_log.Warn("[CLIENT]: unhandled packet " + Pack.ToString());
|
m_log.Warn("[CLIENT]: unhandled packet " + Pack.ToString());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -398,8 +398,10 @@ namespace OpenSim.Region.Communications.OGS1
|
||||||
public RegionInfo RequestClosestRegion(string regionName)
|
public RegionInfo RequestClosestRegion(string regionName)
|
||||||
{
|
{
|
||||||
foreach (RegionInfo ri in m_remoteRegionInfoCache.Values)
|
foreach (RegionInfo ri in m_remoteRegionInfoCache.Values)
|
||||||
if(ri.RegionName == regionName)
|
{
|
||||||
|
if (ri.RegionName == regionName)
|
||||||
return ri;
|
return ri;
|
||||||
|
}
|
||||||
|
|
||||||
RegionInfo regionInfo = null;
|
RegionInfo regionInfo = null;
|
||||||
try
|
try
|
||||||
|
@ -441,7 +443,7 @@ namespace OpenSim.Region.Communications.OGS1
|
||||||
regionInfo.RegionID = new LLUUID((string) responseData["region_UUID"]);
|
regionInfo.RegionID = new LLUUID((string) responseData["region_UUID"]);
|
||||||
regionInfo.RegionName = (string) responseData["region_name"];
|
regionInfo.RegionName = (string) responseData["region_name"];
|
||||||
|
|
||||||
if(!m_remoteRegionInfoCache.ContainsKey(regionInfo.RegionHandle))
|
if (!m_remoteRegionInfoCache.ContainsKey(regionInfo.RegionHandle))
|
||||||
m_remoteRegionInfoCache.Add(regionInfo.RegionHandle, regionInfo);
|
m_remoteRegionInfoCache.Add(regionInfo.RegionHandle, regionInfo);
|
||||||
}
|
}
|
||||||
catch (WebException)
|
catch (WebException)
|
||||||
|
|
|
@ -1,66 +1,66 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* * Redistributions of source code must retain the above copyright
|
* * Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* * Neither the name of the OpenSim Project nor the
|
* * Neither the name of the OpenSim Project nor the
|
||||||
* names of its contributors may be used to endorse or promote products
|
* names of its contributors may be used to endorse or promote products
|
||||||
* derived from this software without specific prior written permission.
|
* derived from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* 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
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using OpenSim.Region.Environment.Scenes;
|
using OpenSim.Region.Environment.Scenes;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using log4net;
|
using log4net;
|
||||||
|
|
||||||
namespace OpenSim.Region.Environment.Modules.World.Archiver
|
namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles an individual archive read request
|
/// Handles an individual archive read request
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ArchiveReadRequest
|
public class ArchiveReadRequest
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
private Scene m_scene;
|
private Scene m_scene;
|
||||||
private string m_loadPath;
|
private string m_loadPath;
|
||||||
|
|
||||||
public ArchiveReadRequest(Scene scene, string loadPath)
|
public ArchiveReadRequest(Scene scene, string loadPath)
|
||||||
{
|
{
|
||||||
m_scene = scene;
|
m_scene = scene;
|
||||||
m_loadPath = loadPath;
|
m_loadPath = loadPath;
|
||||||
|
|
||||||
DearchiveRegion();
|
DearchiveRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void DearchiveRegion()
|
protected void DearchiveRegion()
|
||||||
{
|
{
|
||||||
TarArchiveReader archive = new TarArchiveReader(m_loadPath);
|
TarArchiveReader archive = new TarArchiveReader(m_loadPath);
|
||||||
|
|
||||||
// Just test for now by reading first file
|
// Just test for now by reading first file
|
||||||
string filePath = "ERROR";
|
string filePath = "ERROR";
|
||||||
|
|
||||||
byte[] data = archive.Read(out filePath);
|
byte[] data = archive.Read(out filePath);
|
||||||
|
|
||||||
m_log.DebugFormat("[ARCHIVER]: Successfully read {0} ({1} bytes) from archive {2}", filePath, data.Length, m_loadPath);
|
m_log.DebugFormat("[ARCHIVER]: Successfully read {0} ({1} bytes) from archive {2}", filePath, data.Length, m_loadPath);
|
||||||
|
|
||||||
archive.Close();
|
archive.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,108 +1,108 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* * Redistributions of source code must retain the above copyright
|
* * Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* * Neither the name of the OpenSim Project nor the
|
* * Neither the name of the OpenSim Project nor the
|
||||||
* names of its contributors may be used to endorse or promote products
|
* names of its contributors may be used to endorse or promote products
|
||||||
* derived from this software without specific prior written permission.
|
* derived from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* 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
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
//using System.Reflection;
|
//using System.Reflection;
|
||||||
//using log4net;
|
//using log4net;
|
||||||
|
|
||||||
namespace OpenSim.Region.Environment.Modules.World.Archiver
|
namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Temporary code to do the bare minimum required to read a tar archive for our purposes
|
/// Temporary code to do the bare minimum required to read a tar archive for our purposes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class TarArchiveReader
|
public class TarArchiveReader
|
||||||
{
|
{
|
||||||
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding();
|
protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Binary reader for the underlying stream
|
/// Binary reader for the underlying stream
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected BinaryReader m_br;
|
protected BinaryReader m_br;
|
||||||
|
|
||||||
public TarArchiveReader(string archivePath)
|
public TarArchiveReader(string archivePath)
|
||||||
{
|
{
|
||||||
m_br = new BinaryReader(new FileStream(archivePath, FileMode.Open));
|
m_br = new BinaryReader(new FileStream(archivePath, FileMode.Open));
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] Read(out string filePath)
|
public byte[] Read(out string filePath)
|
||||||
{
|
{
|
||||||
TarHeader header = ReadHeader();
|
TarHeader header = ReadHeader();
|
||||||
filePath = header.FilePath;
|
filePath = header.FilePath;
|
||||||
return m_br.ReadBytes(header.FileSize);
|
return m_br.ReadBytes(header.FileSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Read the next 512 byte chunk of data as a tar header.
|
/// Read the next 512 byte chunk of data as a tar header.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A tar header struct</returns>
|
/// <returns>A tar header struct</returns>
|
||||||
protected TarHeader ReadHeader()
|
protected TarHeader ReadHeader()
|
||||||
{
|
{
|
||||||
TarHeader tarHeader = new TarHeader();
|
TarHeader tarHeader = new TarHeader();
|
||||||
|
|
||||||
byte[] header = m_br.ReadBytes(512);
|
byte[] header = m_br.ReadBytes(512);
|
||||||
|
|
||||||
tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100);
|
tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100);
|
||||||
tarHeader.FileSize = ConvertOctalBytesToDecimal(header, 124, 11);
|
tarHeader.FileSize = ConvertOctalBytesToDecimal(header, 124, 11);
|
||||||
|
|
||||||
return tarHeader;
|
return tarHeader;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Close()
|
public void Close()
|
||||||
{
|
{
|
||||||
m_br.Close();
|
m_br.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Convert octal bytes to a decimal representation
|
/// Convert octal bytes to a decimal representation
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="bytes"></param>
|
/// <param name="bytes"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static int ConvertOctalBytesToDecimal(byte[] bytes, int startIndex, int count)
|
public static int ConvertOctalBytesToDecimal(byte[] bytes, int startIndex, int count)
|
||||||
{
|
{
|
||||||
string oString = m_asciiEncoding.GetString(bytes, startIndex, count);
|
string oString = m_asciiEncoding.GetString(bytes, startIndex, count);
|
||||||
|
|
||||||
int d = 0;
|
int d = 0;
|
||||||
|
|
||||||
foreach (char c in oString)
|
foreach (char c in oString)
|
||||||
{
|
{
|
||||||
d <<= 3;
|
d <<= 3;
|
||||||
d |= c - '0';
|
d |= c - '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct TarHeader
|
public struct TarHeader
|
||||||
{
|
{
|
||||||
public string FilePath;
|
public string FilePath;
|
||||||
public int FileSize;
|
public int FileSize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -357,7 +357,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lsri.OwnerName = "waiting";
|
lsri.OwnerName = "waiting";
|
||||||
lock(uuidNameLookupList)
|
lock (uuidNameLookupList)
|
||||||
uuidNameLookupList.Add(sog.OwnerID);
|
uuidNameLookupList.Add(sog.OwnerID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
private ulong CurrentTime
|
private ulong CurrentTime
|
||||||
{
|
{
|
||||||
get {
|
get {
|
||||||
|
|
||||||
return (ulong)(((System.DateTime.Now.Ticks) - TicksToEpoch + TicksOffset)/10000000);
|
return (ulong)(((System.DateTime.Now.Ticks) - TicksToEpoch + TicksOffset)/10000000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -346,7 +346,7 @@ namespace OpenSim.Region.Environment.Modules
|
||||||
{
|
{
|
||||||
if (m_rootAgents.ContainsKey(avatar.UUID))
|
if (m_rootAgents.ContainsKey(avatar.UUID))
|
||||||
{
|
{
|
||||||
m_rootAgents[avatar.UUID] = avatar.RegionHandle;
|
m_rootAgents[avatar.UUID] = avatar.RegionHandle;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -192,7 +192,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public void LoadCurrentSceneFromXml2(string filename)
|
public void LoadCurrentSceneFromXml2(string filename)
|
||||||
{
|
{
|
||||||
CurrentOrFirstScene.LoadPrimsFromXml2(filename);
|
CurrentOrFirstScene.LoadPrimsFromXml2(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Save the current scene to an OpenSimulator archive. This archive will eventually include the prim's assets
|
/// Save the current scene to an OpenSimulator archive. This archive will eventually include the prim's assets
|
||||||
|
|
|
@ -62,7 +62,6 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
public float pathTaperX = 0.0f;
|
public float pathTaperX = 0.0f;
|
||||||
public float pathTaperY = 0.0f;
|
public float pathTaperY = 0.0f;
|
||||||
|
|
||||||
|
|
||||||
public Mesh Extrude(Mesh m)
|
public Mesh Extrude(Mesh m)
|
||||||
{
|
{
|
||||||
startParameter = float.MinValue;
|
startParameter = float.MinValue;
|
||||||
|
@ -129,8 +128,8 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
v.Y = v2.Y;
|
v.Y = v2.Y;
|
||||||
v.Z = v2.Z;
|
v.Z = v2.Z;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (Vertex v in workingMinus.vertices)
|
foreach (Vertex v in workingMinus.vertices)
|
||||||
{
|
{
|
||||||
if (v == null)
|
if (v == null)
|
||||||
|
@ -159,10 +158,8 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
}
|
}
|
||||||
|
|
||||||
result.Append(workingMinus);
|
result.Append(workingMinus);
|
||||||
|
|
||||||
result.Append(workingMiddle);
|
result.Append(workingMiddle);
|
||||||
|
|
||||||
|
|
||||||
int iLastNull = 0;
|
int iLastNull = 0;
|
||||||
|
|
||||||
for (int i = 0; i < workingMiddle.vertices.Count; i++)
|
for (int i = 0; i < workingMiddle.vertices.Count; i++)
|
||||||
|
@ -228,6 +225,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
new Triangle(workingPlus.vertices[iNext], workingMiddle.vertices[i], workingMiddle.vertices[iNext]);
|
new Triangle(workingPlus.vertices[iNext], workingMiddle.vertices[i], workingMiddle.vertices[iNext]);
|
||||||
result.Add(tSide);
|
result.Add(tSide);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (twistMid != 0)
|
if (twistMid != 0)
|
||||||
{
|
{
|
||||||
foreach (Vertex v in result.vertices)
|
foreach (Vertex v in result.vertices)
|
||||||
|
@ -245,6 +243,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Mesh ExtrudeCircularPath(Mesh m)
|
public Mesh ExtrudeCircularPath(Mesh m)
|
||||||
{
|
{
|
||||||
//startParameter = float.MinValue;
|
//startParameter = float.MinValue;
|
||||||
|
@ -294,8 +293,6 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
//System.Console.WriteLine("taperBotFactorX: " + taperBotFactorX.ToString() + " taperBotFactorY: " + taperBotFactorY.ToString()
|
//System.Console.WriteLine("taperBotFactorX: " + taperBotFactorX.ToString() + " taperBotFactorY: " + taperBotFactorY.ToString()
|
||||||
// + " taperTopFactorX: " + taperTopFactorX.ToString() + " taperTopFactorY: " + taperTopFactorY.ToString());
|
// + " taperTopFactorX: " + taperTopFactorX.ToString() + " taperTopFactorY: " + taperTopFactorY.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
float percentOfPath = 1.0f;
|
float percentOfPath = 1.0f;
|
||||||
|
@ -328,10 +325,6 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
|
|
||||||
//System.Console.WriteLine("Extruder: radius: " + radius.ToString() + " radiusScale: " + radiusScale.ToString());
|
//System.Console.WriteLine("Extruder: radius: " + radius.ToString() + " radiusScale: " + radiusScale.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
float twist = twistBot + (twistTotal * (float)percentOfPath);
|
float twist = twistBot + (twistTotal * (float)percentOfPath);
|
||||||
|
|
||||||
float zOffset = (float)(System.Math.Sin(angle) * (0.5f - yPathScale)) * radiusScale;
|
float zOffset = (float)(System.Math.Sin(angle) * (0.5f - yPathScale)) * radiusScale;
|
||||||
|
@ -404,13 +397,6 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
}
|
}
|
||||||
lastLayer = newLayer;
|
lastLayer = newLayer;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// calc next angle
|
// calc next angle
|
||||||
|
|
||||||
if (angle >= endAngle)
|
if (angle >= endAngle)
|
||||||
|
@ -421,10 +407,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
if (angle > endAngle)
|
if (angle > endAngle)
|
||||||
angle = endAngle;
|
angle = endAngle;
|
||||||
}
|
}
|
||||||
}
|
} while (!done);
|
||||||
while (!done);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// scale the mesh to the desired size
|
// scale the mesh to the desired size
|
||||||
float xScale = size.X;
|
float xScale = size.X;
|
||||||
|
@ -432,12 +415,14 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
float zScale = size.Z;
|
float zScale = size.Z;
|
||||||
|
|
||||||
foreach (Vertex v in result.vertices)
|
foreach (Vertex v in result.vertices)
|
||||||
|
{
|
||||||
if (v != null)
|
if (v != null)
|
||||||
{
|
{
|
||||||
v.X *= xScale;
|
v.X *= xScale;
|
||||||
v.Y *= yScale;
|
v.Y *= yScale;
|
||||||
v.Z *= zScale;
|
v.Z *= zScale;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
holeHull.AddVertex(IPM);
|
holeHull.AddVertex(IPM);
|
||||||
}
|
}
|
||||||
//if (hshape == HollowShape.Circle && pbs.PathCurve == (byte)Extrusion.Straight)
|
//if (hshape == HollowShape.Circle && pbs.PathCurve == (byte)Extrusion.Straight)
|
||||||
if ( hshape == HollowShape.Circle )
|
if (hshape == HollowShape.Circle)
|
||||||
{
|
{
|
||||||
float hollowFactorF = (float)fhollowFactor / (float)50000;
|
float hollowFactorF = (float)fhollowFactor / (float)50000;
|
||||||
|
|
||||||
|
@ -1346,7 +1346,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
// || (primShape.ProfileCurve & 0x07) == (byte) ProfileShape.Square)
|
// || (primShape.ProfileCurve & 0x07) == (byte) ProfileShape.Square)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("Meshmerizer thinks " + primName + " is a TORUS");
|
//Console.WriteLine("Meshmerizer thinks " + primName + " is a TORUS");
|
||||||
if ( hollowShape == HollowShape.Same )
|
if (hollowShape == HollowShape.Same)
|
||||||
hollowShape = HollowShape.Circle;
|
hollowShape = HollowShape.Circle;
|
||||||
|
|
||||||
// build the profile shape
|
// build the profile shape
|
||||||
|
@ -1381,7 +1381,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) // a ring
|
else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) // a ring
|
||||||
{
|
{
|
||||||
//Console.WriteLine("Meshmerizer thinks " + primName + " is a TUBE");
|
//Console.WriteLine("Meshmerizer thinks " + primName + " is a TUBE");
|
||||||
if ( hollowShape == HollowShape.Same )
|
if (hollowShape == HollowShape.Same)
|
||||||
hollowShape = HollowShape.Square;
|
hollowShape = HollowShape.Square;
|
||||||
|
|
||||||
outerHull.AddVertex(new Vertex(+0.5f, +0.5f, 0.0f));
|
outerHull.AddVertex(new Vertex(+0.5f, +0.5f, 0.0f));
|
||||||
|
@ -1393,7 +1393,7 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.EquilateralTriangle)
|
else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.EquilateralTriangle)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("Meshmerizer thinks " + primName + " is a RING");
|
//Console.WriteLine("Meshmerizer thinks " + primName + " is a RING");
|
||||||
if ( hollowShape == HollowShape.Same )
|
if (hollowShape == HollowShape.Same)
|
||||||
hollowShape = HollowShape.Triangle;
|
hollowShape = HollowShape.Triangle;
|
||||||
|
|
||||||
outerHull.AddVertex(new Vertex(+0.255f, -0.375f, 0.0f));
|
outerHull.AddVertex(new Vertex(+0.255f, -0.375f, 0.0f));
|
||||||
|
|
|
@ -1432,7 +1432,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
m_host.Sound = key;
|
m_host.Sound = key;
|
||||||
}
|
}
|
||||||
// else try to locate the name in inventory of object. found returns key,
|
// else try to locate the name in inventory of object. found returns key,
|
||||||
// not found returns LLUUID.Zero
|
// not found returns LLUUID.Zero
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_host.Sound = InventoryKey(sound.ToString());
|
m_host.Sound = InventoryKey(sound.ToString());
|
||||||
|
@ -1477,7 +1477,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
m_host.Sound = LLUUID.Zero;
|
m_host.Sound = LLUUID.Zero;
|
||||||
m_host.SoundGain = 0;
|
m_host.SoundGain = 0;
|
||||||
m_host.SoundFlags = 0;
|
m_host.SoundFlags = 0;
|
||||||
m_host.SoundRadius = 0;
|
m_host.SoundRadius = 0;
|
||||||
|
|
||||||
m_host.SendFullUpdateToAllClients();
|
m_host.SendFullUpdateToAllClients();
|
||||||
|
|
||||||
|
@ -3871,7 +3871,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
{
|
{
|
||||||
// Finally got to the first line of the notecard
|
// Finally got to the first line of the notecard
|
||||||
// now find the end of the notecard text delimited by }<LF>
|
// now find the end of the notecard text delimited by }<LF>
|
||||||
// parse the lines, delimited by <LF>
|
// parse the lines, delimited by <LF>
|
||||||
notecardIndex = dataString.IndexOf("\n", notecardIndex);
|
notecardIndex = dataString.IndexOf("\n", notecardIndex);
|
||||||
notecardIndex++; // get past delimiter
|
notecardIndex++; // get past delimiter
|
||||||
|
|
||||||
|
@ -5627,10 +5627,10 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
|
|
||||||
RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator);
|
RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator);
|
||||||
|
|
||||||
switch(data)
|
switch (data)
|
||||||
{
|
{
|
||||||
case 5: // DATA_SIM_POS
|
case 5: // DATA_SIM_POS
|
||||||
if(info == null)
|
if (info == null)
|
||||||
return LLUUID.Zero.ToString();
|
return LLUUID.Zero.ToString();
|
||||||
reply = new LSL_Types.Vector3(
|
reply = new LSL_Types.Vector3(
|
||||||
info.RegionLocX * Constants.RegionSize,
|
info.RegionLocX * Constants.RegionSize,
|
||||||
|
@ -5638,18 +5638,18 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
0).ToString();
|
0).ToString();
|
||||||
break;
|
break;
|
||||||
case 6: // DATA_SIM_STATUS
|
case 6: // DATA_SIM_STATUS
|
||||||
if(info != null)
|
if (info != null)
|
||||||
reply = "up"; // Duh!
|
reply = "up"; // Duh!
|
||||||
else
|
else
|
||||||
reply = "unknown";
|
reply = "unknown";
|
||||||
break;
|
break;
|
||||||
case 7: // DATA_SIM_RATING
|
case 7: // DATA_SIM_RATING
|
||||||
if(info == null)
|
if (info == null)
|
||||||
return LLUUID.Zero.ToString();
|
return LLUUID.Zero.ToString();
|
||||||
int access = (int)info.EstateSettings.simAccess;
|
int access = (int)info.EstateSettings.simAccess;
|
||||||
if(access == 21)
|
if (access == 21)
|
||||||
reply = "MATURE";
|
reply = "MATURE";
|
||||||
else if(access == 13)
|
else if (access == 13)
|
||||||
reply = "MATURE";
|
reply = "MATURE";
|
||||||
else
|
else
|
||||||
reply = "UNKNOWN";
|
reply = "UNKNOWN";
|
||||||
|
|
|
@ -59,9 +59,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
public LLUUID RegisterRequest(uint localID, LLUUID itemID,
|
public LLUUID RegisterRequest(uint localID, LLUUID itemID,
|
||||||
string identifier)
|
string identifier)
|
||||||
{
|
{
|
||||||
lock(DataserverRequests)
|
lock (DataserverRequests)
|
||||||
{
|
{
|
||||||
if(DataserverRequests.ContainsKey(identifier))
|
if (DataserverRequests.ContainsKey(identifier))
|
||||||
return LLUUID.Zero;
|
return LLUUID.Zero;
|
||||||
|
|
||||||
DataserverRequest ds = new DataserverRequest();
|
DataserverRequest ds = new DataserverRequest();
|
||||||
|
@ -84,9 +84,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
{
|
{
|
||||||
DataserverRequest ds;
|
DataserverRequest ds;
|
||||||
|
|
||||||
lock(DataserverRequests)
|
lock (DataserverRequests)
|
||||||
{
|
{
|
||||||
if(!DataserverRequests.ContainsKey(identifier))
|
if (!DataserverRequests.ContainsKey(identifier))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ds=DataserverRequests[identifier];
|
ds=DataserverRequests[identifier];
|
||||||
|
@ -101,11 +101,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
|
|
||||||
public void RemoveEvents(uint localID, LLUUID itemID)
|
public void RemoveEvents(uint localID, LLUUID itemID)
|
||||||
{
|
{
|
||||||
lock(DataserverRequests)
|
lock (DataserverRequests)
|
||||||
{
|
{
|
||||||
foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
|
foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
|
||||||
{
|
{
|
||||||
if(ds.itemID == itemID)
|
if (ds.itemID == itemID)
|
||||||
DataserverRequests.Remove(ds.handle);
|
DataserverRequests.Remove(ds.handle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,11 +113,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
|
|
||||||
public void ExpireRequests()
|
public void ExpireRequests()
|
||||||
{
|
{
|
||||||
lock(DataserverRequests)
|
lock (DataserverRequests)
|
||||||
{
|
{
|
||||||
foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
|
foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
|
||||||
{
|
{
|
||||||
if(ds.startTime > DateTime.Now.AddSeconds(30))
|
if (ds.startTime > DateTime.Now.AddSeconds(30))
|
||||||
DataserverRequests.Remove(ds.handle);
|
DataserverRequests.Remove(ds.handle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
bool handled = false;
|
bool handled = false;
|
||||||
|
|
||||||
// Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely
|
// Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely
|
||||||
xmlrpc.RemoveCompletedRequest(rInfo.GetMessageID());
|
xmlrpc.RemoveCompletedRequest(rInfo.GetMessageID());
|
||||||
|
|
||||||
// And since the xmlrpc request queue is actually shared among all regions on the simulator, we need
|
// And since the xmlrpc request queue is actually shared among all regions on the simulator, we need
|
||||||
// to look in each one for the appropriate handler
|
// to look in each one for the appropriate handler
|
||||||
|
@ -96,9 +96,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
|
|
||||||
// Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely
|
// Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely
|
||||||
xmlrpc.RemoveCompletedSRDRequest(srdInfo.GetReqID());
|
xmlrpc.RemoveCompletedSRDRequest(srdInfo.GetReqID());
|
||||||
|
|
||||||
// And this is another shared queue... so we check each of the script engines for a handler
|
// And this is another shared queue... so we check each of the script engines for a handler
|
||||||
foreach (ScriptEngine sman in ScriptEngine.ScriptEngines)
|
foreach (ScriptEngine sman in ScriptEngine.ScriptEngines)
|
||||||
{
|
{
|
||||||
if (sman.m_ScriptManager.GetScript(srdInfo.m_localID,srdInfo.m_itemID) != null) {
|
if (sman.m_ScriptManager.GetScript(srdInfo.m_localID,srdInfo.m_itemID) != null) {
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! handled)
|
if (! handled)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Unhandled xml_srdrequest: " + srdInfo.GetReqID());
|
Console.WriteLine("Unhandled xml_srdrequest: " + srdInfo.GetReqID());
|
||||||
|
|
|
@ -87,9 +87,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
||||||
string quote = String.Empty;
|
string quote = String.Empty;
|
||||||
bool last_was_escape = false;
|
bool last_was_escape = false;
|
||||||
int quote_replaced_count = 0;
|
int quote_replaced_count = 0;
|
||||||
|
|
||||||
string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";");
|
string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";");
|
||||||
|
|
||||||
string removecomments = conelinecomments.Replace(removefwnoncomments, "");
|
string removecomments = conelinecomments.Replace(removefwnoncomments, "");
|
||||||
removecomments = cstylecomments.Replace(removecomments, "");
|
removecomments = cstylecomments.Replace(removecomments, "");
|
||||||
string[] localscript = removecomments.Split('"');
|
string[] localscript = removecomments.Split('"');
|
||||||
|
@ -121,9 +121,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
||||||
// ignores alpha.x alpha.y, alpha.z for refering to vector components
|
// ignores alpha.x alpha.y, alpha.z for refering to vector components
|
||||||
Match SecurityM;
|
Match SecurityM;
|
||||||
|
|
||||||
|
|
||||||
SecurityM = Regex.Match(checkscript, @"([a-zA-Z])\.(?:[a-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
|
SecurityM = Regex.Match(checkscript, @"([a-zA-Z])\.(?:[a-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
|
||||||
if (SecurityM.Success)
|
if (SecurityM.Success)
|
||||||
throw new Exception("CS0103: 'The . symbol cannot be used in LSL except in float values or vector components'. Detected around: " + SecurityM.Captures[0].Value);
|
throw new Exception("CS0103: 'The . symbol cannot be used in LSL except in float values or vector components'. Detected around: " + SecurityM.Captures[0].Value);
|
||||||
|
|
||||||
SecurityM = Regex.Match(checkscript, @"typeof\s", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
|
SecurityM = Regex.Match(checkscript, @"typeof\s", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
|
||||||
|
|
Loading…
Reference in New Issue