Merge branch 'master' into careminster

avinationmerge
Melanie 2009-12-14 00:40:56 +00:00
commit 824d7190c2
10 changed files with 337 additions and 222 deletions

View File

@ -1,173 +1,173 @@
The following people have contributed to OpenSim (Thank you The following people have contributed to OpenSim (Thank you
for your effort!) for your effort!)
Add your name in here if you have committed to OpenSim Add your name in here if you have committed to OpenSim
= Current OpenSim Developers (in very rough order of appearance) = = Current OpenSim Developers (in very rough order of appearance) =
These folks represent the current core team for OpenSim, and are the These folks represent the current core team for OpenSim, and are the
people that make the day to day of OpenSim happen. people that make the day to day of OpenSim happen.
* MW (Tribal Media AB) * MW (Tribal Media AB)
* Adam Frisby (DeepThink Pty Ltd) * Adam Frisby (DeepThink Pty Ltd)
* MingChen (DeepThink Pty Ltd) * MingChen (DeepThink Pty Ltd)
* lbsa71 (Tribal Media AB) * lbsa71 (Tribal Media AB)
* Sean Dague / sdague (IBM) * Sean Dague / sdague (IBM)
* Tedd * Tedd
* justincc * justincc
* Teravus (w3z) * Teravus (w3z)
* Johan Berntsson (3Di) * Johan Berntsson (3Di)
* Ckrinke (Charles Krinke) * Ckrinke (Charles Krinke)
* chi11ken (Genkii) * chi11ken (Genkii)
* adjohn (Genkii) * adjohn (Genkii)
* Dr Scofield aka Dirk Husemann (IBM Research - Zurich) * Dr Scofield aka Dirk Husemann (IBM Research - Zurich)
* dahlia * dahlia
* mikem (3Di) * mikem (3Di)
* Melanie Thielker * Melanie Thielker
* Homer_Horwitz * Homer_Horwitz
* idb (Ian Brown) * idb (Ian Brown)
* Diva (Crista Lopes, University of California, Irvine) * Diva (Crista Lopes, University of California, Irvine)
* nlin (3Di) * nlin (3Di)
* Arthur Rodrigo S Valadares (IBM) * Arthur Rodrigo S Valadares (IBM)
= Past Open Sim Developers = = Past Open Sim Developers =
These folks are alumns of the OpenSim core group, but are now These folks are alumns of the OpenSim core group, but are now
currently not active. Their great contributions helped get us to currently not active. Their great contributions helped get us to
where we are today. where we are today.
* Gareth * Gareth
* Andy- * Andy-
* MorphW * MorphW
* CW * CW
* Babblefrog * Babblefrog
* Danx0r * Danx0r
* Dalien * Dalien
* Darok * Darok
* Alondria * Alondria
= Additional OpenSim Contributors = = Additional OpenSim Contributors =
These folks have contributed code patches to OpenSim to help make it These folks have contributed code patches to OpenSim to help make it
what it is today. what it is today.
* aduffy70 * aduffy70
* A_Biondi * A_Biondi
* alex_carnell * alex_carnell
* Alan Webb (IBM) * Alan Webb (IBM)
* BigFootAg * BigFootAg
* BlueWall Slade * BlueWall Slade
* brianw/Sir_Ahzz * brianw/Sir_Ahzz
* CharlieO * CharlieO
* ChrisDown * ChrisDown
* Chris Yeoh (IBM) * Chris Yeoh (IBM)
* coyled * coyled
* Daedius * Daedius
* Dong Jun Lan (IBM) * Dong Jun Lan (IBM)
* DoranZemlja * DoranZemlja
* daTwitch * daTwitch
* devalnor-#708 * devalnor-#708
* dmiles (Daxtron Labs) * dmiles (Daxtron Labs)
* dslake (Intel) * dslake (Intel)
* FredoChaplin * FredoChaplin
* Gerhard * Gerhard
* Godfrey * Godfrey
* Grumly57 * Grumly57
* Ewe Loon * Ewe Loon
* Fly-Man * Fly-Man
* Flyte Xevious * Flyte Xevious
* Imaze Rhiano * Imaze Rhiano
* Intimidated * Intimidated
* Jeremy Bongio (IBM) * Jeremy Bongio (IBM)
* jhurliman * jhurliman
* John R Sohn (XenReborn) * John R Sohn (XenReborn)
* jonc * jonc
* Junta Kohime * Junta Kohime
* Kayne * Kayne
* Kevin Cozens * Kevin Cozens
* kinoc (Daxtron Labs) * kinoc (Daxtron Labs)
* Kitto Flora * Kitto Flora
* KittyLiu * KittyLiu
* Kurt Taylor (IBM) * Kurt Taylor (IBM)
* lulurun * lulurun
* M.Igarashi * M.Igarashi
* maimedleech * maimedleech
* Mic Bowman * Mic Bowman
* Michelle Argus * Michelle Argus
* Michael Cortez (The Flotsam Project, http://osflotsam.org/) * Michael Cortez (The Flotsam Project, http://osflotsam.org/)
* Mike Osias (IBM) * Mike Osias (IBM)
* Mike Pitman (IBM) * Mike Pitman (IBM)
* mikkopa/_someone - RealXtend * mikkopa/_someone - RealXtend
* Misterblue (Intel) * Misterblue (Intel)
* Mircea Kitsune * Mircea Kitsune
* mpallari * mpallari
* nornalbion * nornalbion
* Omar Vera Ustariz (IBM) * Omar Vera Ustariz (IBM)
* openlifegrid.com * openlifegrid.com
* otakup0pe * otakup0pe
* ralphos * ralphos
* RemedyTomm * RemedyTomm
* Revolution * Revolution
* Richard Alimi (IBM) * Richard Alimi (IBM)
* Rick Alther (IBM) * Rick Alther (IBM)
* Rob Smart (IBM) * Rob Smart (IBM)
* rtomita * rtomita
* Ruud Lathorp * Ruud Lathorp
* SachaMagne * SachaMagne
* Salahzar Stenvaag * Salahzar Stenvaag
* sempuki * sempuki
* Snoopy * Snoopy
* Strawberry Fride * Strawberry Fride
* tglion * tglion
* tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud) * tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud)
* tyre * tyre
* Vytek * Vytek
* webmage (IBM) * webmage (IBM)
* Xantor * Xantor
* Y. Nitta * Y. Nitta
* YZh * YZh
* Zackary Geers aka Kunnis Basiat * Zackary Geers aka Kunnis Basiat
* Zha Ewry * Zha Ewry
= LSL Devs = = LSL Devs =
* Alondria * Alondria
* CharlieO * CharlieO
* Tedd * Tedd
* Melanie Thielker * Melanie Thielker
= Testers = = Testers =
* Ai Austin * Ai Austin
* CharlieO (LSL) * CharlieO (LSL)
* Ckrinke * Ckrinke
* openlifegrid.com * openlifegrid.com
This software uses components from the following developers: This software uses components from the following developers:
* Sleepycat Software (Berkeley DB) * Sleepycat Software (Berkeley DB)
* SQLite (Public Domain) * SQLite (Public Domain)
* XmlRpcCS (http://xmlrpccs.sf.net/) * XmlRpcCS (http://xmlrpccs.sf.net/)
* MySQL, Inc. (MySQL Connector/NET) * MySQL, Inc. (MySQL Connector/NET)
* 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/)
* LibOpenMetaverse (http://lib.openmetaverse.org/) * LibOpenMetaverse (http://lib.openmetaverse.org/)
* DotNetOpenMail v0.5.8b (http://dotnetopenmail.sourceforge.net) * DotNetOpenMail v0.5.8b (http://dotnetopenmail.sourceforge.net)
* Prototype JavaScript Framework ajax (http://www.prototypejs.org/) * Prototype JavaScript Framework ajax (http://www.prototypejs.org/)
* C5 GENERIC COLLECTION LIBRARY FOR C#/CLI * C5 GENERIC COLLECTION LIBRARY FOR C#/CLI
* Nini (http://nini.sourceforge.net/) * Nini (http://nini.sourceforge.net/)
* log4net (http://logging.apache.org/log4net/) * log4net (http://logging.apache.org/log4net/)
* GlynnTucker.Cache (http://gtcache.sourceforge.net/) * GlynnTucker.Cache (http://gtcache.sourceforge.net/)
* NDesk.Options 0.2.1 (http://www.ndesk.org/Options) * NDesk.Options 0.2.1 (http://www.ndesk.org/Options)
Some plugins are based on Cable Beach Some plugins are based on Cable Beach
Cable Beach is Copyright (c) 2008 Intel Corporation Cable Beach is Copyright (c) 2008 Intel Corporation
see http://forge.opensimulator.org/gf/project/assetserver/ see http://forge.opensimulator.org/gf/project/assetserver/
In addition, we would like to thank: In addition, we would like to thank:
* The Mono Project * The Mono Project
* The NANT Developers * The NANT Developers
* Microsoft (.NET, MSSQL-Adapters) * Microsoft (.NET, MSSQL-Adapters)

View File

@ -91,6 +91,9 @@ namespace OpenSim.Data.MySQL
rollbackStore = GridDataMySqlFile.ParseFileReadValue("rollback") == "true"; rollbackStore = GridDataMySqlFile.ParseFileReadValue("rollback") == "true";
opengridmode = GridDataMySqlFile.ParseFileReadValue("opengridmode") == "true"; opengridmode = GridDataMySqlFile.ParseFileReadValue("opengridmode") == "true";
if(rollbackStore)
m_log.Warn("[MysqlInventory] Enabling rollback mode in: " + rollbackDir);
database = database =
new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
settingPort); settingPort);

View File

@ -1007,6 +1007,26 @@ namespace OpenSim.Framework
return os; return os;
} }
public static string GetRuntimeInformation()
{
string ru = String.Empty;
if (Environment.OSVersion.Platform == PlatformID.Unix)
ru = "Unix/Mono";
else
if (Environment.OSVersion.Platform == PlatformID.MacOSX)
ru = "OSX/Mono";
else
{
if (Type.GetType("Mono.Runtime") != null)
ru = "Win/Mono";
else
ru = "Win/.NET";
}
return ru;
}
/// <summary> /// <summary>
/// Is the given string a UUID? /// Is the given string a UUID?
/// </summary> /// </summary>

View File

@ -332,7 +332,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
private AgentUpdateArgs lastarg; private AgentUpdateArgs lastarg;
private bool m_IsActive = true; private bool m_IsActive = true;
protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); protected Dictionary<PacketType, PacketProcessor> m_packetHandlers = new Dictionary<PacketType, PacketProcessor>();
protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers
protected Scene m_scene; protected Scene m_scene;
protected LLImageManager m_imageManager; protected LLImageManager m_imageManager;
@ -539,13 +539,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
} }
public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler) public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler)
{
return AddLocalPacketHandler(packetType, handler, true);
}
public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler, bool async)
{ {
bool result = false; bool result = false;
lock (m_packetHandlers) lock (m_packetHandlers)
{ {
if (!m_packetHandlers.ContainsKey(packetType)) if (!m_packetHandlers.ContainsKey(packetType))
{ {
m_packetHandlers.Add(packetType, handler); m_packetHandlers.Add(packetType, new PacketProcessor() { method = handler, Async = async });
result = true; result = true;
} }
} }
@ -576,15 +581,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected virtual bool ProcessPacketMethod(Packet packet) protected virtual bool ProcessPacketMethod(Packet packet)
{ {
bool result = false; bool result = false;
PacketMethod method; PacketProcessor pprocessor;
if (m_packetHandlers.TryGetValue(packet.Type, out method)) if (m_packetHandlers.TryGetValue(packet.Type, out pprocessor))
{ {
//there is a local handler for this packet type //there is a local handler for this packet type
result = method(this, packet); if (pprocessor.Async)
{
object obj = new AsyncPacketProcess(this, pprocessor.method, packet);
Util.FireAndForget(ProcessSpecificPacketAsync,obj);
result = true;
}
else
{
result = pprocessor.method(this, packet);
}
} }
else else
{ {
//there is not a local handler so see if there is a Global handler //there is not a local handler so see if there is a Global handler
PacketMethod method = null;
bool found; bool found;
lock (PacketHandlers) lock (PacketHandlers)
{ {
@ -598,6 +613,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return result; return result;
} }
public void ProcessSpecificPacketAsync(object state)
{
AsyncPacketProcess packetObject = (AsyncPacketProcess)state;
packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack);
}
#endregion Packet Handling #endregion Packet Handling
# region Setup # region Setup
@ -4323,20 +4345,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected virtual void RegisterLocalPacketHandlers() protected virtual void RegisterLocalPacketHandlers()
{ {
AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout); AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout);
AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate); AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false);
AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect); AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false);
AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached); AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false);
AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate); AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false);
AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false);
AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest, false);
AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest, false);
AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest, false);
AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage);
AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest);
AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer);
AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate);
AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply);
AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage); AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage, false);
AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship);
AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship);
AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship);
@ -4353,9 +4375,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach);
AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach);
AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop);
AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun); AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun, false);
AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement);
AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation); AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation, false);
AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit);
AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit);
AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger);
@ -4364,9 +4386,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest); AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest);
AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo); AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo);
AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest); AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest);
AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle); AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle, false);
AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause); AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause, false);
AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume); AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume, false);
AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease); AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease);
AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink); AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink);
AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink); AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink);
@ -4382,22 +4404,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation);
AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate);
AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage);
AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab); AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab, false);
AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate); AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate, false);
AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab);
AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart); AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart, false);
AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate); AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate, false);
AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop); AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop, false);
AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription); AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription, false);
AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName); AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false);
AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions); AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false);
AddLocalPacketHandler(PacketType.Undo, HandleUndo); AddLocalPacketHandler(PacketType.Undo, HandleUndo, false);
AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay);
AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily); AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false);
AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch);
AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes); AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes, false);
AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction); AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction, false);
AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial); AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial, false);
AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage); AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage);
AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest); AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest);
AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest); AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest);
@ -4423,17 +4445,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory); AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory);
AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory); AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory);
AddLocalPacketHandler(PacketType.RezScript, HandleRezScript); AddLocalPacketHandler(PacketType.RezScript, HandleRezScript);
AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest); AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest, false);
AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest); AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest, false);
AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest); AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest, false);
AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest); AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest);
AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest); AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest);
AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest); AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest, false);
AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest); AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest);
AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest); AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest, false);
AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest); AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest, false);
AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate); AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate, false);
AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest); AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest, false);
AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide); AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide);
AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin); AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin);
AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate); AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate);
@ -4447,7 +4469,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest); AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest);
AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest); AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest);
AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage); AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage);
AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo); AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo, false);
AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest); AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest);
AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers); AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers);
AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser); AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser);
@ -4462,13 +4484,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures); AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures);
AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures); AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures);
AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner); AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner);
AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV); AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV, false);
AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats); AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats);
AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest); AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest, false);
AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort); AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort, false);
AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest); AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest, false);
AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode); AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode);
AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth); AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth, false);
AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents); AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents);
AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery); AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery);
AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery); AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery);
@ -15740,6 +15762,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP
} }
#endregion #endregion
} }
public struct PacketProcessor
{
public PacketMethod method;
public bool Async;
}
public class AsyncPacketProcess
{
public bool result = false;
public readonly LLClientView ClientView = null;
public readonly Packet Pack = null;
public readonly PacketMethod Method = null;
public AsyncPacketProcess(LLClientView pClientview, PacketMethod pMethod, Packet pPack)
{
ClientView = pClientview;
Method = pMethod;
Pack = pPack;
}
}
#endregion #endregion
public static OSD BuildEvent(string eventName, OSD eventBody) public static OSD BuildEvent(string eventName, OSD eventBody)

View File

@ -964,7 +964,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
} }
if (packetInbox.Dequeue(100, ref incomingPacket)) if (packetInbox.Dequeue(100, ref incomingPacket))
Util.FireAndForget(ProcessInPacket, incomingPacket); ProcessInPacket(incomingPacket);//, incomingPacket); Util.FireAndForget(ProcessInPacket, incomingPacket);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -576,10 +576,15 @@ namespace OpenSim.Region.Framework.Scenes
StatsReporter.SetObjectCapacity(objectCapacity); StatsReporter.SetObjectCapacity(objectCapacity);
// Old
/*
m_simulatorVersion = simulatorVersion m_simulatorVersion = simulatorVersion
+ " (OS " + Util.GetOperatingSystemInformation() + ")" + " (OS " + Util.GetOperatingSystemInformation() + ")"
+ " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString()
+ " PhysPrim:" + m_physicalPrim.ToString(); + " PhysPrim:" + m_physicalPrim.ToString();
*/
m_simulatorVersion = simulatorVersion + " (" + Util.GetRuntimeInformation() + ")";
try try
{ {
@ -915,7 +920,7 @@ namespace OpenSim.Region.Framework.Scenes
if (showDialog) if (showDialog)
{ {
m_dialogModule.SendNotificationToUsersInRegion( m_dialogModule.SendNotificationToUsersInRegion(
UUID.Random(), String.Empty, RegionInfo.RegionName + ": Restarting in " + (seconds / 60).ToString() + " Minutes"); UUID.Random(), String.Empty, RegionInfo.RegionName + String.Format(": Restarting in {0} Minutes", (int)(seconds / 60.0)));
} }
} }
} }
@ -946,6 +951,16 @@ namespace OpenSim.Region.Framework.Scenes
// This causes the region to restart immediatley. // This causes the region to restart immediatley.
public void RestartNow() public void RestartNow()
{ {
IConfig startupConfig = m_config.Configs["Startup"];
if (startupConfig != null)
{
if (startupConfig.GetBoolean("InworldRestartShutsDown", false))
{
MainConsole.Instance.RunCommand("shutdown");
return;
}
}
if (PhysicsScene != null) if (PhysicsScene != null)
{ {
PhysicsScene.Dispose(); PhysicsScene.Dispose();
@ -953,6 +968,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.Error("[REGION]: Closing"); m_log.Error("[REGION]: Closing");
Close(); Close();
m_log.Error("[REGION]: Firing Region Restart Message"); m_log.Error("[REGION]: Firing Region Restart Message");
base.Restart(0); base.Restart(0);
} }

View File

@ -1973,5 +1973,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
return ret; return ret;
} }
public int osGetSimulatorMemory()
{
CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemory");
m_host.AddScriptLPS(1);
long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
if (pws > Int32.MaxValue)
return Int32.MaxValue;
if (pws < 0)
return 0;
return (int)pws;
}
} }
} }

View File

@ -163,5 +163,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
key osGetMapTexture(); key osGetMapTexture();
key osGetRegionMapTexture(string regionName); key osGetRegionMapTexture(string regionName);
LSL_List osGetRegionStats(); LSL_List osGetRegionStats();
int osGetSimulatorMemory();
} }
} }

View File

@ -637,5 +637,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{ {
return m_OSSL_Functions.osGetRegionStats(); return m_OSSL_Functions.osGetRegionStats();
} }
/// <summary>
/// Returns the amount of memory in use by the Simulator Daemon.
/// Amount in bytes - if >= 4GB, returns 4GB. (LSL is not 64-bit aware)
/// </summary>
/// <returns></returns>
public LSL_Integer osGetSimulatorMemory()
{
return m_OSSL_Functions.osGetSimulatorMemory();
}
} }
} }

View File

@ -107,7 +107,15 @@
; Combine all contiguous regions into one large region ; Combine all contiguous regions into one large region
; Order your regions from South to North, West to East in your regions.ini and then set this to true ; Order your regions from South to North, West to East in your regions.ini and then set this to true
; Warning! Don't use this with regions that have existing content!, This will likely break them ; Warning! Don't use this with regions that have existing content!, This will likely break them
CombineContiguousRegions=false CombineContiguousRegions = false
; If you have only one region in an instance, or to avoid the many bugs
; that you can trigger in modules by restarting a region, set this to
; true to make the entire instance exit instead of restarting the region.
; This is meant to be used on systems where some external system like
; Monit will restart any instance that exits, thereby making the shutdown
; into a restart.
;InworldRestartShutsDown = false
; ## ; ##
; ## STORAGE ; ## STORAGE