diff options
Diffstat (limited to 'OpenSim/Region')
5 files changed, 26 insertions, 44 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 14f923d..d7458b7 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3387,20 +3387,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3387 | aw.AgentData.SerialNum = (uint)serial; | 3387 | aw.AgentData.SerialNum = (uint)serial; |
3388 | aw.AgentData.SessionID = m_sessionId; | 3388 | aw.AgentData.SessionID = m_sessionId; |
3389 | 3389 | ||
3390 | int count = 0; | ||
3391 | for (int i = 0; i < wearables.Length; i++) | ||
3392 | count += wearables[i].Count; | ||
3393 | |||
3390 | // TODO: don't create new blocks if recycling an old packet | 3394 | // TODO: don't create new blocks if recycling an old packet |
3391 | aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13]; | 3395 | aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[count]; |
3392 | AgentWearablesUpdatePacket.WearableDataBlock awb; | 3396 | AgentWearablesUpdatePacket.WearableDataBlock awb; |
3397 | int idx = 0; | ||
3393 | for (int i = 0; i < wearables.Length; i++) | 3398 | for (int i = 0; i < wearables.Length; i++) |
3394 | { | 3399 | { |
3395 | awb = new AgentWearablesUpdatePacket.WearableDataBlock(); | 3400 | for (int j = 0; j < wearables[i].Count; j++) |
3396 | awb.WearableType = (byte)i; | 3401 | { |
3397 | awb.AssetID = wearables[i].AssetID; | 3402 | awb = new AgentWearablesUpdatePacket.WearableDataBlock(); |
3398 | awb.ItemID = wearables[i].ItemID; | 3403 | awb.WearableType = (byte)i; |
3399 | aw.WearableData[i] = awb; | 3404 | awb.AssetID = wearables[i][j].AssetID; |
3405 | awb.ItemID = wearables[i][j].ItemID; | ||
3406 | aw.WearableData[idx] = awb; | ||
3407 | idx++; | ||
3400 | 3408 | ||
3401 | // m_log.DebugFormat( | 3409 | // m_log.DebugFormat( |
3402 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", | 3410 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", |
3403 | // awb.ItemID, awb.AssetID, i, Name); | 3411 | // awb.ItemID, awb.AssetID, i, Name); |
3412 | } | ||
3404 | } | 3413 | } |
3405 | 3414 | ||
3406 | OutPacket(aw, ThrottleOutPacketType.Task); | 3415 | OutPacket(aw, ThrottleOutPacketType.Task); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 183aec0..45bede3 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -183,7 +183,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
183 | IConfig config = configSource.Configs["ClientStack.LindenUDP"]; | 183 | IConfig config = configSource.Configs["ClientStack.LindenUDP"]; |
184 | if (config != null) | 184 | if (config != null) |
185 | { | 185 | { |
186 | m_asyncPacketHandling = config.GetBoolean("async_packet_handling", false); | 186 | m_asyncPacketHandling = config.GetBoolean("async_packet_handling", true); |
187 | m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0); | 187 | m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0); |
188 | sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0); | 188 | sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0); |
189 | 189 | ||
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index e2755c8..6cbd8bd 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -382,27 +382,22 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
382 | { | 382 | { |
383 | for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++) | 383 | for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++) |
384 | { | 384 | { |
385 | if (appearance.Wearables[i].ItemID == UUID.Zero) | 385 | for (int j = 0 ; j < appearance.Wearables[j].Count ; j ++ ) |
386 | { | 386 | { |
387 | appearance.Wearables[i].AssetID = UUID.Zero; | 387 | InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID); |
388 | } | ||
389 | else | ||
390 | { | ||
391 | InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i].ItemID, userID); | ||
392 | baseItem = invService.GetItem(baseItem); | 388 | baseItem = invService.GetItem(baseItem); |
393 | 389 | ||
394 | if (baseItem != null) | 390 | if (baseItem != null) |
395 | { | 391 | { |
396 | appearance.Wearables[i].AssetID = baseItem.AssetID; | 392 | appearance.Wearables[i].Add(appearance.Wearables[i][j].ItemID, baseItem.AssetID); |
397 | } | 393 | } |
398 | else | 394 | else |
399 | { | 395 | { |
400 | m_log.ErrorFormat( | 396 | m_log.ErrorFormat( |
401 | "[AVATAR FACTORY MODULE]: Can't find inventory item {0} for {1}, setting to default", | 397 | "[AVATAR FACTORY MODULE]: Can't find inventory item {0} for {1}, setting to default", |
402 | appearance.Wearables[i].ItemID, (WearableType)i); | 398 | appearance.Wearables[i][j].ItemID, (WearableType)i); |
403 | 399 | ||
404 | appearance.Wearables[i].ItemID = UUID.Zero; | 400 | appearance.Wearables[i].RemoveItem(appearance.Wearables[i][j].ItemID); |
405 | appearance.Wearables[i].AssetID = UUID.Zero; | ||
406 | } | 401 | } |
407 | } | 402 | } |
408 | } | 403 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 9080e1c..d81703a 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -173,28 +173,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
173 | 173 | ||
174 | InventoryCollection contents | 174 | InventoryCollection contents |
175 | = m_scene.InventoryService.GetFolderContent(inventoryFolder.Owner, inventoryFolder.ID); | 175 | = m_scene.InventoryService.GetFolderContent(inventoryFolder.Owner, inventoryFolder.ID); |
176 | //List<InventoryFolderImpl> childFolders = inventoryFolder.RequestListOfFolderImpls(); | ||
177 | //List<InventoryItemBase> items = inventoryFolder.RequestListOfItems(); | ||
178 | |||
179 | /* | ||
180 | Dictionary identicalFolderNames = new Dictionary<string, int>(); | ||
181 | |||
182 | foreach (InventoryFolderImpl folder in inventories) | ||
183 | { | ||
184 | if (!identicalFolderNames.ContainsKey(folder.Name)) | ||
185 | identicalFolderNames[folder.Name] = 0; | ||
186 | else | ||
187 | identicalFolderNames[folder.Name] = identicalFolderNames[folder.Name]++; | ||
188 | |||
189 | int folderNameNumber = identicalFolderName[folder.Name]; | ||
190 | |||
191 | SaveInvDir( | ||
192 | folder, | ||
193 | string.Format( | ||
194 | "{0}{1}{2}/", | ||
195 | path, ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR, folderNameNumber)); | ||
196 | } | ||
197 | */ | ||
198 | 176 | ||
199 | foreach (InventoryFolderBase childFolder in contents.Folders) | 177 | foreach (InventoryFolderBase childFolder in contents.Folders) |
200 | { | 178 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 925af3f..283182c 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -193,7 +193,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
193 | GridRegion finalDestination = GetFinalDestination(reg); | 193 | GridRegion finalDestination = GetFinalDestination(reg); |
194 | if (finalDestination == null) | 194 | if (finalDestination == null) |
195 | { | 195 | { |
196 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Final destination is having problems. Unable to teleport agent."); | 196 | m_log.WarnFormat("[ENTITY TRANSFER MODULE]: Final destination is having problems. Unable to teleport agent."); |
197 | sp.ControllingClient.SendTeleportFailed("Problem at destination"); | 197 | sp.ControllingClient.SendTeleportFailed("Problem at destination"); |
198 | return; | 198 | return; |
199 | } | 199 | } |
@@ -240,7 +240,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
240 | } | 240 | } |
241 | catch (Exception e) | 241 | catch (Exception e) |
242 | { | 242 | { |
243 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Exception on teleport: {0}\n{1}", e.Message, e.StackTrace); | 243 | m_log.WarnFormat("[ENTITY TRANSFER MODULE]: Exception on teleport: {0}\n{1}", e.Message, e.StackTrace); |
244 | sp.ControllingClient.SendTeleportFailed("Internal error"); | 244 | sp.ControllingClient.SendTeleportFailed("Internal error"); |
245 | } | 245 | } |
246 | } | 246 | } |
@@ -398,7 +398,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
398 | m_log.DebugFormat( | 398 | m_log.DebugFormat( |
399 | "[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} to client {1}", capsPath, sp.UUID); | 399 | "[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} to client {1}", capsPath, sp.UUID); |
400 | 400 | ||
401 | |||
402 | if (eq != null) | 401 | if (eq != null) |
403 | { | 402 | { |
404 | eq.TeleportFinishEvent(destinationHandle, 13, endPoint, | 403 | eq.TeleportFinishEvent(destinationHandle, 13, endPoint, |
@@ -558,6 +557,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
558 | client.SendTeleportFailed("Your home region could not be found."); | 557 | client.SendTeleportFailed("Your home region could not be found."); |
559 | return; | 558 | return; |
560 | } | 559 | } |
560 | |||
561 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: User's home region is {0} {1} ({2}-{3})", | 561 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: User's home region is {0} {1} ({2}-{3})", |
562 | regionInfo.RegionName, regionInfo.RegionID, regionInfo.RegionLocX / Constants.RegionSize, regionInfo.RegionLocY / Constants.RegionSize); | 562 | regionInfo.RegionName, regionInfo.RegionID, regionInfo.RegionLocX / Constants.RegionSize, regionInfo.RegionLocY / Constants.RegionSize); |
563 | 563 | ||
@@ -1162,7 +1162,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1162 | Utils.LongToUInts(reg.RegionHandle, out x, out y); | 1162 | Utils.LongToUInts(reg.RegionHandle, out x, out y); |
1163 | x = x / Constants.RegionSize; | 1163 | x = x / Constants.RegionSize; |
1164 | y = y / Constants.RegionSize; | 1164 | y = y / Constants.RegionSize; |
1165 | m_log.Info("[ENTITY TRANSFER MODULE]: Starting to inform client about neighbour " + x + ", " + y + "(" + endPoint.ToString() + ")"); | 1165 | m_log.Debug("[ENTITY TRANSFER MODULE]: Starting to inform client about neighbour " + x + ", " + y + "(" + endPoint.ToString() + ")"); |
1166 | 1166 | ||
1167 | string capsPath = reg.ServerURI + CapsUtil.GetCapsSeedPath(a.CapsPath); | 1167 | string capsPath = reg.ServerURI + CapsUtil.GetCapsSeedPath(a.CapsPath); |
1168 | 1168 | ||
@@ -1197,7 +1197,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1197 | // TODO: make Event Queue disablable! | 1197 | // TODO: make Event Queue disablable! |
1198 | } | 1198 | } |
1199 | 1199 | ||
1200 | m_log.Info("[ENTITY TRANSFER MODULE]: Completed inform client about neighbour " + endPoint.ToString()); | 1200 | m_log.Debug("[ENTITY TRANSFER MODULE]: Completed inform client about neighbour " + endPoint.ToString()); |
1201 | 1201 | ||
1202 | } | 1202 | } |
1203 | 1203 | ||