diff options
Diffstat (limited to '')
6 files changed, 132 insertions, 48 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 2b5e632..e7ce2e0 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -332,7 +332,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
332 | private AgentUpdateArgs lastarg; | 332 | private AgentUpdateArgs lastarg; |
333 | private bool m_IsActive = true; | 333 | private bool m_IsActive = true; |
334 | 334 | ||
335 | protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); | 335 | protected Dictionary<PacketType, PacketProcessor> m_packetHandlers = new Dictionary<PacketType, PacketProcessor>(); |
336 | protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers | 336 | protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers |
337 | protected Scene m_scene; | 337 | protected Scene m_scene; |
338 | protected LLImageManager m_imageManager; | 338 | protected LLImageManager m_imageManager; |
@@ -540,12 +540,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
540 | 540 | ||
541 | public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler) | 541 | public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler) |
542 | { | 542 | { |
543 | return AddLocalPacketHandler(packetType, handler, true); | ||
544 | } | ||
545 | |||
546 | public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler, bool async) | ||
547 | { | ||
543 | bool result = false; | 548 | bool result = false; |
544 | lock (m_packetHandlers) | 549 | lock (m_packetHandlers) |
545 | { | 550 | { |
546 | if (!m_packetHandlers.ContainsKey(packetType)) | 551 | if (!m_packetHandlers.ContainsKey(packetType)) |
547 | { | 552 | { |
548 | m_packetHandlers.Add(packetType, handler); | 553 | m_packetHandlers.Add(packetType, new PacketProcessor() { method = handler, Async = async }); |
549 | result = true; | 554 | result = true; |
550 | } | 555 | } |
551 | } | 556 | } |
@@ -576,15 +581,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
576 | protected virtual bool ProcessPacketMethod(Packet packet) | 581 | protected virtual bool ProcessPacketMethod(Packet packet) |
577 | { | 582 | { |
578 | bool result = false; | 583 | bool result = false; |
579 | PacketMethod method; | 584 | PacketProcessor pprocessor; |
580 | if (m_packetHandlers.TryGetValue(packet.Type, out method)) | 585 | if (m_packetHandlers.TryGetValue(packet.Type, out pprocessor)) |
581 | { | 586 | { |
582 | //there is a local handler for this packet type | 587 | //there is a local handler for this packet type |
583 | result = method(this, packet); | 588 | if (pprocessor.Async) |
589 | { | ||
590 | object obj = new AsyncPacketProcess(this, pprocessor.method, packet); | ||
591 | Util.FireAndForget(ProcessSpecificPacketAsync,obj); | ||
592 | result = true; | ||
593 | } | ||
594 | else | ||
595 | { | ||
596 | result = pprocessor.method(this, packet); | ||
597 | } | ||
584 | } | 598 | } |
585 | else | 599 | else |
586 | { | 600 | { |
587 | //there is not a local handler so see if there is a Global handler | 601 | //there is not a local handler so see if there is a Global handler |
602 | PacketMethod method = null; | ||
588 | bool found; | 603 | bool found; |
589 | lock (PacketHandlers) | 604 | lock (PacketHandlers) |
590 | { | 605 | { |
@@ -598,6 +613,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
598 | return result; | 613 | return result; |
599 | } | 614 | } |
600 | 615 | ||
616 | public void ProcessSpecificPacketAsync(object state) | ||
617 | { | ||
618 | AsyncPacketProcess packetObject = (AsyncPacketProcess)state; | ||
619 | packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); | ||
620 | |||
621 | } | ||
622 | |||
601 | #endregion Packet Handling | 623 | #endregion Packet Handling |
602 | 624 | ||
603 | # region Setup | 625 | # region Setup |
@@ -4323,20 +4345,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4323 | protected virtual void RegisterLocalPacketHandlers() | 4345 | protected virtual void RegisterLocalPacketHandlers() |
4324 | { | 4346 | { |
4325 | AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout); | 4347 | AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout); |
4326 | AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate); | 4348 | AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false); |
4327 | AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect); | 4349 | AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false); |
4328 | AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached); | 4350 | AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false); |
4329 | AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate); | 4351 | AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false); |
4330 | AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); | 4352 | AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false); |
4331 | AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); | 4353 | AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest, false); |
4332 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); | 4354 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest, false); |
4333 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); | 4355 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest, false); |
4334 | AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); | 4356 | AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); |
4335 | AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); | 4357 | AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); |
4336 | AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | 4358 | AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); |
4337 | AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); | 4359 | AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); |
4338 | AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); | 4360 | AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); |
4339 | AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage); | 4361 | AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage, false); |
4340 | AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); | 4362 | AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); |
4341 | AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); | 4363 | AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); |
4342 | AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); | 4364 | AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); |
@@ -4353,9 +4375,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4353 | AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); | 4375 | AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); |
4354 | AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); | 4376 | AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); |
4355 | AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); | 4377 | AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); |
4356 | AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun); | 4378 | AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun, false); |
4357 | AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); | 4379 | AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); |
4358 | AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation); | 4380 | AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation, false); |
4359 | AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); | 4381 | AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); |
4360 | AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); | 4382 | AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); |
4361 | AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); | 4383 | AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); |
@@ -4364,9 +4386,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4364 | AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest); | 4386 | AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest); |
4365 | AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo); | 4387 | AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo); |
4366 | AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest); | 4388 | AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest); |
4367 | AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle); | 4389 | AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle, false); |
4368 | AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause); | 4390 | AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause, false); |
4369 | AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume); | 4391 | AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume, false); |
4370 | AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease); | 4392 | AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease); |
4371 | AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink); | 4393 | AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink); |
4372 | AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink); | 4394 | AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink); |
@@ -4382,22 +4404,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4382 | AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); | 4404 | AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); |
4383 | AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); | 4405 | AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); |
4384 | AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); | 4406 | AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); |
4385 | AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab); | 4407 | AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab, false); |
4386 | AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate); | 4408 | AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate, false); |
4387 | AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); | 4409 | AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); |
4388 | AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart); | 4410 | AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart, false); |
4389 | AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate); | 4411 | AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate, false); |
4390 | AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop); | 4412 | AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop, false); |
4391 | AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription); | 4413 | AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription, false); |
4392 | AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName); | 4414 | AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false); |
4393 | AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions); | 4415 | AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false); |
4394 | AddLocalPacketHandler(PacketType.Undo, HandleUndo); | 4416 | AddLocalPacketHandler(PacketType.Undo, HandleUndo, false); |
4395 | AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); | 4417 | AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); |
4396 | AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily); | 4418 | AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false); |
4397 | AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); | 4419 | AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); |
4398 | AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes); | 4420 | AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes, false); |
4399 | AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction); | 4421 | AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction, false); |
4400 | AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial); | 4422 | AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial, false); |
4401 | AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage); | 4423 | AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage); |
4402 | AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest); | 4424 | AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest); |
4403 | AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest); | 4425 | AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest); |
@@ -4423,17 +4445,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4423 | AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory); | 4445 | AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory); |
4424 | AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory); | 4446 | AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory); |
4425 | AddLocalPacketHandler(PacketType.RezScript, HandleRezScript); | 4447 | AddLocalPacketHandler(PacketType.RezScript, HandleRezScript); |
4426 | AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest); | 4448 | AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest, false); |
4427 | AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest); | 4449 | AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest, false); |
4428 | AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest); | 4450 | AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest, false); |
4429 | AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest); | 4451 | AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest); |
4430 | AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest); | 4452 | AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest); |
4431 | AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest); | 4453 | AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest, false); |
4432 | AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest); | 4454 | AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest); |
4433 | AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest); | 4455 | AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest, false); |
4434 | AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest); | 4456 | AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest, false); |
4435 | AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate); | 4457 | AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate, false); |
4436 | AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest); | 4458 | AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest, false); |
4437 | AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide); | 4459 | AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide); |
4438 | AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin); | 4460 | AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin); |
4439 | AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate); | 4461 | AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate); |
@@ -4447,7 +4469,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4447 | AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest); | 4469 | AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest); |
4448 | AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest); | 4470 | AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest); |
4449 | AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage); | 4471 | AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage); |
4450 | AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo); | 4472 | AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo, false); |
4451 | AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest); | 4473 | AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest); |
4452 | AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers); | 4474 | AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers); |
4453 | AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser); | 4475 | AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser); |
@@ -4462,13 +4484,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4462 | AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures); | 4484 | AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures); |
4463 | AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures); | 4485 | AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures); |
4464 | AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner); | 4486 | AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner); |
4465 | AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV); | 4487 | AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV, false); |
4466 | AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats); | 4488 | AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats); |
4467 | AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest); | 4489 | AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest, false); |
4468 | AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort); | 4490 | AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort, false); |
4469 | AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest); | 4491 | AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest, false); |
4470 | AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode); | 4492 | AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode); |
4471 | AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth); | 4493 | AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth, false); |
4472 | AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents); | 4494 | AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents); |
4473 | AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery); | 4495 | AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery); |
4474 | AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery); | 4496 | AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery); |
@@ -15740,6 +15762,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
15740 | } | 15762 | } |
15741 | #endregion | 15763 | #endregion |
15742 | } | 15764 | } |
15765 | |||
15766 | public struct PacketProcessor | ||
15767 | { | ||
15768 | public PacketMethod method; | ||
15769 | public bool Async; | ||
15770 | } | ||
15771 | public class AsyncPacketProcess | ||
15772 | { | ||
15773 | public bool result = false; | ||
15774 | public readonly LLClientView ClientView = null; | ||
15775 | public readonly Packet Pack = null; | ||
15776 | public readonly PacketMethod Method = null; | ||
15777 | public AsyncPacketProcess(LLClientView pClientview, PacketMethod pMethod, Packet pPack) | ||
15778 | { | ||
15779 | ClientView = pClientview; | ||
15780 | Method = pMethod; | ||
15781 | Pack = pPack; | ||
15782 | } | ||
15783 | } | ||
15784 | |||
15743 | #endregion | 15785 | #endregion |
15744 | 15786 | ||
15745 | public static OSD BuildEvent(string eventName, OSD eventBody) | 15787 | public static OSD BuildEvent(string eventName, OSD eventBody) |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 85961b9..4d9f58f 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -964,7 +964,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
964 | } | 964 | } |
965 | 965 | ||
966 | if (packetInbox.Dequeue(100, ref incomingPacket)) | 966 | if (packetInbox.Dequeue(100, ref incomingPacket)) |
967 | Util.FireAndForget(ProcessInPacket, incomingPacket); | 967 | ProcessInPacket(incomingPacket);//, incomingPacket); Util.FireAndForget(ProcessInPacket, incomingPacket); |
968 | } | 968 | } |
969 | catch (Exception ex) | 969 | catch (Exception ex) |
970 | { | 970 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 1b275b0..104d22b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -576,10 +576,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
576 | 576 | ||
577 | StatsReporter.SetObjectCapacity(objectCapacity); | 577 | StatsReporter.SetObjectCapacity(objectCapacity); |
578 | 578 | ||
579 | // Old | ||
580 | /* | ||
579 | m_simulatorVersion = simulatorVersion | 581 | m_simulatorVersion = simulatorVersion |
580 | + " (OS " + Util.GetOperatingSystemInformation() + ")" | 582 | + " (OS " + Util.GetOperatingSystemInformation() + ")" |
581 | + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() | 583 | + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() |
582 | + " PhysPrim:" + m_physicalPrim.ToString(); | 584 | + " PhysPrim:" + m_physicalPrim.ToString(); |
585 | */ | ||
586 | |||
587 | m_simulatorVersion = simulatorVersion + " (" + Util.GetRuntimeInformation() + ")"; | ||
583 | 588 | ||
584 | try | 589 | try |
585 | { | 590 | { |
@@ -915,7 +920,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
915 | if (showDialog) | 920 | if (showDialog) |
916 | { | 921 | { |
917 | m_dialogModule.SendNotificationToUsersInRegion( | 922 | m_dialogModule.SendNotificationToUsersInRegion( |
918 | UUID.Random(), String.Empty, RegionInfo.RegionName + ": Restarting in " + (seconds / 60).ToString() + " Minutes"); | 923 | UUID.Random(), String.Empty, RegionInfo.RegionName + String.Format(": Restarting in {0} Minutes", (int)(seconds / 60.0))); |
919 | } | 924 | } |
920 | } | 925 | } |
921 | } | 926 | } |
@@ -946,6 +951,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
946 | // This causes the region to restart immediatley. | 951 | // This causes the region to restart immediatley. |
947 | public void RestartNow() | 952 | public void RestartNow() |
948 | { | 953 | { |
954 | IConfig startupConfig = m_config.Configs["Startup"]; | ||
955 | if (startupConfig != null) | ||
956 | { | ||
957 | if (startupConfig.GetBoolean("InworldRestartShutsDown", false)) | ||
958 | { | ||
959 | MainConsole.Instance.RunCommand("shutdown"); | ||
960 | return; | ||
961 | } | ||
962 | } | ||
963 | |||
949 | if (PhysicsScene != null) | 964 | if (PhysicsScene != null) |
950 | { | 965 | { |
951 | PhysicsScene.Dispose(); | 966 | PhysicsScene.Dispose(); |
@@ -953,6 +968,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
953 | 968 | ||
954 | m_log.Error("[REGION]: Closing"); | 969 | m_log.Error("[REGION]: Closing"); |
955 | Close(); | 970 | Close(); |
971 | |||
956 | m_log.Error("[REGION]: Firing Region Restart Message"); | 972 | m_log.Error("[REGION]: Firing Region Restart Message"); |
957 | base.Restart(0); | 973 | base.Restart(0); |
958 | } | 974 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 836f276..d7480e6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -1973,5 +1973,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1973 | } | 1973 | } |
1974 | return ret; | 1974 | return ret; |
1975 | } | 1975 | } |
1976 | |||
1977 | public int osGetSimulatorMemory() | ||
1978 | { | ||
1979 | CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemory"); | ||
1980 | m_host.AddScriptLPS(1); | ||
1981 | long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; | ||
1982 | |||
1983 | if (pws > Int32.MaxValue) | ||
1984 | return Int32.MaxValue; | ||
1985 | if (pws < 0) | ||
1986 | return 0; | ||
1987 | |||
1988 | return (int)pws; | ||
1989 | } | ||
1976 | } | 1990 | } |
1977 | } | 1991 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index c3bf7d2..d943b59 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | |||
@@ -163,5 +163,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
163 | key osGetMapTexture(); | 163 | key osGetMapTexture(); |
164 | key osGetRegionMapTexture(string regionName); | 164 | key osGetRegionMapTexture(string regionName); |
165 | LSL_List osGetRegionStats(); | 165 | LSL_List osGetRegionStats(); |
166 | |||
167 | int osGetSimulatorMemory(); | ||
166 | } | 168 | } |
167 | } | 169 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 519463e..2876ad6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | |||
@@ -637,5 +637,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
637 | { | 637 | { |
638 | return m_OSSL_Functions.osGetRegionStats(); | 638 | return m_OSSL_Functions.osGetRegionStats(); |
639 | } | 639 | } |
640 | |||
641 | /// <summary> | ||
642 | /// Returns the amount of memory in use by the Simulator Daemon. | ||
643 | /// Amount in bytes - if >= 4GB, returns 4GB. (LSL is not 64-bit aware) | ||
644 | /// </summary> | ||
645 | /// <returns></returns> | ||
646 | public LSL_Integer osGetSimulatorMemory() | ||
647 | { | ||
648 | return m_OSSL_Functions.osGetSimulatorMemory(); | ||
649 | } | ||
640 | } | 650 | } |
641 | } | 651 | } |