aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs32
1 files changed, 23 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 2ca2657..afc5270 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -40,11 +40,10 @@ using OpenMetaverse.Packets;
40using OpenMetaverse.StructuredData; 40using OpenMetaverse.StructuredData;
41using OpenSim.Framework; 41using OpenSim.Framework;
42using OpenSim.Framework.Client; 42using OpenSim.Framework.Client;
43using OpenSim.Framework.Communications.Cache; 43
44using OpenSim.Framework.Statistics; 44using OpenSim.Framework.Statistics;
45using OpenSim.Region.Framework.Interfaces; 45using OpenSim.Region.Framework.Interfaces;
46using OpenSim.Region.Framework.Scenes; 46using OpenSim.Region.Framework.Scenes;
47using OpenSim.Region.Framework.Scenes.Hypergrid;
48using OpenSim.Services.Interfaces; 47using OpenSim.Services.Interfaces;
49using Timer = System.Timers.Timer; 48using Timer = System.Timers.Timer;
50using AssetLandmark = OpenSim.Framework.AssetLandmark; 49using AssetLandmark = OpenSim.Framework.AssetLandmark;
@@ -353,6 +352,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
353 private bool m_SendLogoutPacketWhenClosing = true; 352 private bool m_SendLogoutPacketWhenClosing = true;
354 private AgentUpdateArgs lastarg; 353 private AgentUpdateArgs lastarg;
355 private bool m_IsActive = true; 354 private bool m_IsActive = true;
355 private bool m_IsLoggingOut = false;
356 356
357 protected Dictionary<PacketType, PacketProcessor> m_packetHandlers = new Dictionary<PacketType, PacketProcessor>(); 357 protected Dictionary<PacketType, PacketProcessor> m_packetHandlers = new Dictionary<PacketType, PacketProcessor>();
358 protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers 358 protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers
@@ -416,6 +416,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
416 get { return m_IsActive; } 416 get { return m_IsActive; }
417 set { m_IsActive = value; } 417 set { m_IsActive = value; }
418 } 418 }
419 public bool IsLoggingOut
420 {
421 get { return m_IsLoggingOut; }
422 set { m_IsLoggingOut = value; }
423 }
424
419 public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } } 425 public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } }
420 426
421 #endregion Properties 427 #endregion Properties
@@ -2527,6 +2533,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2527 2533
2528 public void SendAsset(AssetRequestToClient req) 2534 public void SendAsset(AssetRequestToClient req)
2529 { 2535 {
2536 if (req.AssetInf.Data == null)
2537 {
2538 m_log.ErrorFormat("Cannot send asset {0} ({1}), asset data is null",
2539 req.AssetInf.ID, req.AssetInf.Metadata.ContentType);
2540 return;
2541 }
2542
2530 //m_log.Debug("sending asset " + req.RequestAssetID); 2543 //m_log.Debug("sending asset " + req.RequestAssetID);
2531 TransferInfoPacket Transfer = new TransferInfoPacket(); 2544 TransferInfoPacket Transfer = new TransferInfoPacket();
2532 Transfer.TransferInfo.ChannelType = 2; 2545 Transfer.TransferInfo.ChannelType = 2;
@@ -4065,10 +4078,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4065 EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock(); 4078 EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
4066 edata.CovenantID = covenant; 4079 edata.CovenantID = covenant;
4067 edata.CovenantTimestamp = 0; 4080 edata.CovenantTimestamp = 0;
4068 if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) 4081 edata.EstateOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
4069 edata.EstateOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
4070 else
4071 edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
4072 edata.EstateName = Utils.StringToBytes(m_scene.RegionInfo.EstateSettings.EstateName); 4082 edata.EstateName = Utils.StringToBytes(m_scene.RegionInfo.EstateSettings.EstateName);
4073 einfopack.Data = edata; 4083 einfopack.Data = edata;
4074 OutPacket(einfopack, ThrottleOutPacketType.Task); 4084 OutPacket(einfopack, ThrottleOutPacketType.Task);
@@ -4089,8 +4099,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4089 4099
4090 //Sending Estate Settings 4100 //Sending Estate Settings
4091 returnblock[0].Parameter = Utils.StringToBytes(estateName); 4101 returnblock[0].Parameter = Utils.StringToBytes(estateName);
4092 // TODO: remove this cruft once MasterAvatar is fully deprecated
4093 //
4094 returnblock[1].Parameter = Utils.StringToBytes(estateOwner.ToString()); 4102 returnblock[1].Parameter = Utils.StringToBytes(estateOwner.ToString());
4095 returnblock[2].Parameter = Utils.StringToBytes(estateID.ToString()); 4103 returnblock[2].Parameter = Utils.StringToBytes(estateID.ToString());
4096 4104
@@ -5518,6 +5526,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5518 // for the client session anyway, in order to protect ourselves against bad code in plugins 5526 // for the client session anyway, in order to protect ourselves against bad code in plugins
5519 try 5527 try
5520 { 5528 {
5529
5521 byte[] visualparams = new byte[appear.VisualParam.Length]; 5530 byte[] visualparams = new byte[appear.VisualParam.Length];
5522 for (int i = 0; i < appear.VisualParam.Length; i++) 5531 for (int i = 0; i < appear.VisualParam.Length; i++)
5523 visualparams[i] = appear.VisualParam[i].ParamValue; 5532 visualparams[i] = appear.VisualParam[i].ParamValue;
@@ -7051,7 +7060,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7051 assetRequestItem = invService.GetItem(assetRequestItem); 7060 assetRequestItem = invService.GetItem(assetRequestItem);
7052 if (assetRequestItem == null) 7061 if (assetRequestItem == null)
7053 { 7062 {
7054 assetRequestItem = ((Scene)m_scene).CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); 7063 ILibraryService lib = m_scene.RequestModuleInterface<ILibraryService>();
7064 if (lib != null)
7065 assetRequestItem = lib.LibraryRootFolder.FindItem(itemID);
7055 if (assetRequestItem == null) 7066 if (assetRequestItem == null)
7056 return true; 7067 return true;
7057 } 7068 }
@@ -11346,6 +11357,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11346 const uint m_maxPacketSize = 600; 11357 const uint m_maxPacketSize = 600;
11347 int numPackets = 1; 11358 int numPackets = 1;
11348 11359
11360 if (data == null)
11361 return 0;
11362
11349 if (data.LongLength > m_maxPacketSize) 11363 if (data.LongLength > m_maxPacketSize)
11350 { 11364 {
11351 // over max number of bytes so split up file 11365 // over max number of bytes so split up file