Eat collision errors --- NOTE: this fix might be naive, it seems to
have helped us getting to 81 avatars (whereas we'd crash with 20
before), but it sure would benefit from some check-over by a person
skilled in the art of ODE physics.
This change addresses two issues:
[1] It adds a flag field to the blendface call which allows the
caller to indicate whether or not the generated asset is
temporary, and whether or not the asset being replaced should
be explicitly retired fromt the memory cache. The decimal
values correspond to:
0 - Permanent asset, do not expire old asset
1 - Permanent asset, expire old asset
2 - Temporary asset, do not expire old asset
3 - Temporary asset, expire old asset
'3' corresponds to the default behavior seen today, and is
the continued behavior of the non-blendface calls.
[2] The dynamic texture routines are highly-asynchronous and can
be scheduled simultaneously on a multi-core machine. The nature
of the texture management interfaece is such that updates may
be lost, and the nature of asynchornous operation means that
they may be processed out of order. A lock has been added to
ensure that updates are at least atomic. No attempt has been
made to enforce ordering. The lock applies to the SceneObjectPart
being updated and is held for the lifetime of the TextureEntry
used to carry texture updates (the one instance carries all
faces supported by the prim).
Users of these services should remember that the dynamic texture
call is asynchronous and control will be returned *before* the
texture update has actually occurred. As a result, a isubsequent
GetTexture call may not return the expected asset id. A script
must wait for the corresponding TEXTURE_CHANGED event before
retrieving any texture information.
SL's LSL supports lone idents:
integer x;
x;
as well as lone idents in for-loop assignments:
for (x; x < 10; x++) { ... }
while those are errors in C# (MONO at least). This patch skips lone
idents in such places.
Fixes Mantis #3042.
For loops with no assignment are no longer syntax errors. For example,
this is now valid:
for ( ; i < 10; i++) { ... }
Corresponding changes to lsl.{lexer,parser} in r99 in opensim-libs.
Fixes Mantis #2501. Fixes Mantis #2884.
It seems overloading the method TestllAngleBetween confused nunit a bit
and caused it to try running the private TestllAngleBetween method. The
method's access modified prevented that from happening, and nunit
complained.
* For some reason, if a null was recieved (indicating a missing asset), the code had stopped passing that on to the waiting lock, resulting in a perpetual freeze
* This change passes the null on correctly
* Many thanks to thomax for being insistent in presenting his analysis of the problem :)
* Issue was that region server was silently dropping an XmlException caused by trying to deserialize the blank asset service response
* So make asset service return http status NOT FOUND rather than OK in accordance with REST
* and interpret this correctly in the async response so that a null object is sent back
* This means that this fix won't be active until both region simulator and server reach this revision
* If an oar save fails to get responses to all asset requests to the asset service then timeout after 60 seconds
* Timeout executes abort, since missing assets in an OAR seems bad
* This means that oar saves won't permanently hang and instead can be retried if something goes wrong with the asset service
* This is not a solution to mantis 3714. Hopefully a fix will be along shortly since I can now consistently reproduce that problem
This patch adds oar file date and time (UTC) meta data to an oar file
when it is created. It also adds a unique ID, though this id does not
in anyway identify the machine that the oar file was created on.
When an oar file with this meta data is loaded this extra information
is saved with the region settings and available via LSL through:
- osLoadedCreationDate()
- osLoadedCreationTime()
- osLoadedCreationID()
If there is no meta data these fields will be blank. Subsequent oar
file loads will erase the information for the previous oar file
load. Persistence has only been implemented for MySQL, the other
backends need updating.
Overall this allows us to much more easily identify the specific version of
software that clients are using. Its very straightforward to edit the oar file
to change the ID string to be something more human friendly.
Included in the patch is a new file OpenSim/Data/MySQL/Resources/030_RegionStore.sql
required for the MySQL DB migration.
btw I had a chat with justincc about this a few weeks ago since he
wrote the oar file import/export and he sounded happy to accept
something that included date/time information but didn't want anything
that would silently leak private information like machine names.
- fixes wild swings in memory usage related to usage of GetDrawStringSize()
We've been seeing wild swings in memory usage and a large chunk of
memory leak. From analysing this it's pretty clear that the mono
garbage collector is rather buggy! When exercised heavily it looks
like it frees more than its meant to resulting in crashes.
GetDrawStringSize() measures the size in pixels of text. To do this
memory for an image is allocated and used to call the GDI text
measure functions. Although no reference to the temporary memory
for the measuring is kept, it takes quite a while for the mono
garbage collector to clean up - so if lots calls to
GetDrawStringSize() are made at once there can be a spike in memory
usage. If the garbage collector is not fast enough then the GDI
layer runs out of memory. It also looks like the garbage collector
is not always reclaiming all of the memory.
I've attached an OpenSim patch which works around the garbage collector
issues. Instead of dynamically allocating memory for measuring
text sizes, it serialises (on a per region basis) access to a single
block of memory. The effect of this is to be nicer to the garbage
collector as it has a lot less work to do, at the cost of some
theoretical loss in performance (nothing noticeable with our tests
which hit it pretty hard).
OpenSim still does leak memory slowly, but it is a lot more stable
with this patch. I suspect that either the garbage collector misses
bits of freed memory or the GDI/cairo layer leaks a bit each time a
texture is created. Thats going to be a lot harder to hunt down, but
for reference if someone has OpenSim running on Windows it would be
interesting to see if it has the same problem as it would tell us if
its a mono/GDI problem or an OpenSim problem.
Modify dynamic texture handling so that an explicitly targetted
face is not scheduled for immediate expiration. The requirement
for precaching explicitly requires these assets to persist. They
do however remain temporary.
This approach leaves the legacy mode of operation (ALL_SIDES)
unchanged in this respect.
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
This appears to be due to the fact that no asset cache has been
configured, possibly as a result of the configuration changes that
have been made recently. I've attached a patch to display a message
to that effect rather than throwing an error.
The IRCStackModule used Nini.Config.ConfigCollection.Contains() to
determine whether the "IRCd" section was present in the config. This
ConfigCollection, however, stores an ArrayList of IConfig objects, not
strings, so calling Contains("IRCd") always returns false since "IRCd"
is a string, not an IConfig object.
* This includes methods such as PlaySound which take a Position as an argument, allowing you to trigger sounds arbitrarily across the scene without needing a parent object in the position.
The attached patch implements llPassTouches. It has been added
to the export/import XML along with the flag for AllowedInventoryDrop.
The MySQL backend has been updated as well, though I haven't
done one of those before so could do with a check. I added
the migration mysql file as well.
The other data backends need updating as well.
* unfortunately, while the client requires uuids and we want to be able to have arbitrary string ids, these cannot be kept in sync
* I think the problems last time were due to a serialization change
* So the major inteface version has been bumped to take care of any lingering issues here.
* This means that region servers beyond this revision can only connect to similarly uptodate grid services, and vice versa
The attached patch implements llPassTouches. It has been added
to the export/import XML along with the flag for AllowedInventoryDrop.
The MySQL backend has been updated as well, though I haven't
done one of those before so could do with a check. I added
the migration mysql file as well.
The other data backends need updating as well.
* If you have something using XmlRpc that isn't in core, change your method signature from:
(XmlRpcRequest request)
to:
(XmlRpcRequest request, IPEndPoint remoteClient)
Changes to support client-side image pre-caching in the region. This
commit adds an additional calling sequence to the DynamicTexture data
and URL calls. The new interface allows a dynamic image to be loaded
into a specific object face (rather than the mandatory ALL_SIDES
supported today.
This is in part fulfilment of ticket #458.
RequestUserInventory is supposed to drive a supplied callback
when it completes. In fact, it fails to do so if the user's
inventory does not exist (e.g. the inventory database is
unavailable for some reason), and the requestor is left
sleeping forever.
The code has been modified to return empty lists via the
callback as an accurate reflection of what is there: nothing.
treated as another ini source to load.
For example:
Include-Asset = AssetSetup.ini
will load AssetSetup.ini after all other ini files are done.
This works recursively, too
The image render module is returning everything twice. Once with
data, once with null. This change adds a return to stop this
behavior. This was not apparent until I added a message to the
catching routine which issued a warning message when no data was
returned.
We've encountered problems with textures never fully downloading and
objects not moving or being deleted (from the client's point of view)
even when the bandwidth settings on the client have been set very
low. This can happen over reasonably lossy links (eg you're on the
other side of the world from the server) as the server retries 3 times
and then gives up.
Whilst its possible to set ReliableIsImportant, this forces the server
to keep retrying no matter what which potentially could lead to
problems. This patch allows for the setting of MaxReliableResends
explicitly (is set to 3 normally) in OpenSim.ini so if you know you
will have clients connecting with poor connections you can set it a
bit higher (10-15 works quite well even for very poor connections).
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems:
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
Adding a jsonp wrapper to the user supplied status report
uri if the key "callback" exists. It will work with many
javascript toolkits to provide an ajax callback to allow
the browser to update stats reports without the
intervention of an intermediate server.
This is to handle the changes in the v1.23 viewer
of LL regarding the adult rating. With this patch
a region can be changed to the adult rating from
LL viewer v1.23 and above.
* User interface is ... primitive at best right now.
* Loads bans from bans.txt and region ban DB on startup, bans.txt is in the format of one per line. The following explains how they are read;
DNS bans are in the form "somewhere.com" will block ANY matching domain (including "betasomewhere.com", "beta.somewhere.com", "somewhere.com.beta") - make sure to be reasonably specific in DNS bans.
IP address bans match on first characters, so, "127.0.0.1" will ban only that address, "127.0.1" will ban "127.0.10.0" but "127.0.1." will ban only the "127.0.1.*" network
default but can be enabled in OpenSim.ini. If enabled, things can be sold
for $0. Other amounts will cause the buyer to see a message and the transaction
will fail.
further ACL stuff:
- adding StrictAccessControl variable: DON'T set this to false if you
want to enforce ACL, it will disable ACLs right now. Default is
true.
once we've got code added to allow child agents but prevent them
from becoming root agents when the ACL denies access to the avatar,
setting this to false will then allow avatars to see into a
neighboring region but not enter it (currently ACL prevent both,
seeing and entering).
- enhancing log statements
- AssetType isn't InventoryType. Those enums contain different numbers. Use AssetType for the asset type, InventoryType for the inventory type.
- The ToString method (or ToLower) of AssetType/InventoryType doesn't necessarily return the correct LLSD string.
- Replaced several magic numbers by their corresponding enum.
- Fixed the invType for gestures and animations in the library.
This should fix Mantis #3610 and the non-terminating inventory loading
* The OpenSimulator core developers have voted to remove all currency functionality from OpenSimulator leaving the 'IMoneyModule' interface in. This affects all systems that used the example money module. This effects All systems that used the XMLRPC External Money Module Hooks interface. If you previously used this interface, please consult with the OpenSimWi Redux folk who are keeping the old module with this interface up to date.
* A notice to the opensim-dev mailing list to come as well.. since this is likely a breaking change for some.
* Create the OpenSim.Region.ReplaceableModules namespace for modules that we intend to have people replace (see readme)
* Create the OpenSim.Region.ReplaceableModules.MoneyModule namespace
* Put our current Sample MoneyModule in this namespace. (more modifications here next commit)
OSP resolver, and the caching of the uuid seperate from the string that is a UUID.
Change this behavior back to something that ensures the data for the 2 is the same.
Put the 2 unit tests that depend on the new behavior into ignore state.
Adding more SL likeness for Email module in CORE.
I've added some SL likeness to the Email module so
that it looks more like emails going out in the
same standard as SL uses
Scene.NewUserConnection()
- adding reason reporting
this enforces estate bans very early on and prevents us from
circulating client objects that we'd then have to retract once we
realize that the client is not allowed into the region
console capable of processing commands. Create LocalConsole as a console
that uses cursor control and context help. Precursor to a distributed
console system for the new grid services. No functional change intended :)
Move json stats to non-published resource name
Remove well-known resource name for json stats,
creating dynamic uris with private keys and add
a user configurable resource name for region owner usage.
Different people using Hippo 0.5.1 report that trying
to send group instant messages crashes the viewer
(Hippo 0.5.1). This is the case even for empty groups
or if all group members are online.
Don't allow packets to be resent before they have actually been sent for the
first time. Switch from serializing a packet to get it's length to the LibOMV
provided Length property. Fix resend timing. Fix the use of dangling references
to Acked packets. Fix the packet handler to play nice with the packet pool.
Fix the packet pool. Add data block recycling to the packet pool. Packet pool
is now ENABLED by default. Add config option to disable packet and data block
reuse. Add ObjectUpdate and ImprovedTerseObjectUpdate to the packets being
recycled.
to recycley data blocs within a packet. Recycle the ObjectUpdate* data
blocks. Speeds up loading even more.
This may mean that the packet pool is now viable.
The attached patch provides the necessary infrastructure to support
security and authentication features of the xmlrpc server.
* Read/Write keys for accessing a Group's xmlrpc service.
* Requiring user session verification for write operations.
arbitrary combinations of root and child prims from one or multiple
link sets. Please test throughly and consider things UNSTABLE until
this is proven out.
If an avatar is sitting when the client disconnects, the avatar
is not disassociated from the SOG on which (s)he was sat. This
produces any, and varied, effects.
I have updated RemoveCLient in Scene, to check, and stand the
client up immediately prior to disconnect. This seems like the
most robust way to handle the situation. Though in this case
it might be worth factoring out the animations from other
standup processing. It does no harm, but in this case it is
entirely redundant.
Added support for access control lists.
Scene: Added test to AddNewClient for an entry in the access
list when connecting to a region with limited access.
EstateSettings: Added an HasAccess(UUID) property to test for
an entry in the estate's access list.
RemoteAdmin: Add RPC calls for admin_acl_list, clear, add,
and remove.
llSetPrimitiveParams in a large linkset can disrupt the
entire region. However, when the script is in a large
linkset, it appears to totally lag out the scene and
stops updates from being sent.
The attached patch fixes a few problems that people were
having with the Messaging provided by the XmlRpcGroups
optional module, namely:
* Fixes 2x echo in group messaging
* Fixes problems with cross instance, non-neighbor, messaging
Some other IRC timing wrinkles showed up:
[1] If connect processing blocked in socket activation, then
the watch dog saw the session as connected, and eventually
tried to ping, but because the socket create was still
blocked, it barfed on a null reference. This then drove
reconnect. Changed the watchdog handler so that it only
tries to ping connections that are connected and not pending.
[2] If the socket creation actually fails, then the connect and
pending flags were reset. This resulted in the connection
being retried at the earliest possible opportunity. The
longer login-timeout is preferrable, so the status flags
are not reset, and the failed login is eventually timed
out.
[3] The Inter-connection interval is primed so that the first
session can connect without delay.
* Make OGS1UserServices inherit from UserManagerBase
* This allows grid mode regions to use the same user data plugin infrastructure as grid servers and standalone OpenSims
Changes to enable script state persistence across non-restart
serialization situations (inventory/OAR/attachments)
Also fixing test cases for OAR and IAR so they don't barf with the new code.
An attachment with the physical checkbox checked will not allow the
phantom checkbox to be cleared. This interfers with scripting
functions such as llMoveToTarget(), which won't work while an object
is phantom. If the prim containing the script is rezzed to the ground,
it will then allow the phantom checlbox to be cleared, and the script
works as expected.
* The change shouldn't affect anyone who has it working currently and makes it a ton easier for everyone else to get it working.
* Handle a case when there's no Event-Calling-Function but it's obviously a REGISTER method
* Refactors the xmlrpc calls to a single location to
make it easier to debug and include alternative
xmlrpc call mechanisms
* Includes an alternative xmlrpc call mechanism that
sets HTTP Keep-Alive to false which solves nearly all
System.Net exceptions on some windows environments
Added support for loading bare asset binaries (as opposed to
xml encoded asset base) to both sandbox asset service and cable beach.
* Added support for enabling region asset service when mxp is enabled.
* Moved base http server content type defaulting before invocation of
request handle method to allow for variable content type in the response.
This patch adds few properties to ScenePresence and
thus allows region module or MRM script:
1. Force flying for avatar or,
2. Disable flying from avatar
Fixes IRC reconnect problem
When a session fails to establish, the login attempt eventually
times out and the login is retried. This should occur once every
25 seconds (to give the server plenty of time to respond). In fact
the interval was typically only 10 seconds, this was being caused
by a second reset that was being scheduled when the failed
listener thread was terminated. Because the second reset occurred
inside the ICC timeout, it eventually gets scheduled after only
10 seconds.
In addition to this, the connector was being added to the monitoring
twice. This was harmless, but entirely redundant.
Both of these problems have been fixed and tested. Each connector
now maintains a count of how often it has been reset. The listener
thread records this value on entry and checks for a change on exit.
If the counts are the same, then the listener is exiting and can
potentially reschedule the connection.
* Example in region module:
Scene.GetModuleInterface<IMRMModule>.RegisterExtension<IMyInterface>(this);
* In the MRM:
//@DEPENDS:MyExtensionModule.dll
...
Host.Extensions<IMyInterface>.DoStuff();
that region. I decided against sending the terrain on every call to osTerrainSetHeight
(which makes it abysmally slow), and added a osTerrainFlush instead, which should be
called after all the terrain-changes have been done. Changed some return types to
LSL types, too, and removed some end-of-line spaces.
This hooks up the LandManagementModule to handle the DeedParcelToGroup
packet. Now people can start testing land assigned to and owned by groups.
Also fixes a viewer crash issue when searching for and then joining a group
with an agent that is not already being tracked by groups server.
Added is a patch that adds a rough Groups implementation. This patch allows
the creation, adding and maintaining Groups, Roles and Members. Work has begun
on a very naive implementation of messaging, and minimal support for notifications
{no attachments yet}. Proposals are not yet supported, but are on the to-do list.
This implementation is not active by default, and must be configured in
OpenSim.ini to become active.
Following feedback from 0003440, i've made some changes to the new texture pipeline to optimise
performance. The changes are:
- Fixed a math issue where a small percentage of images with a certain size (on the packet boundary) would not have their final data delivered. This issue has been present since pre- 0003440
- It was suggested that a discardlevel of -1 and a prioriy of 0 meant to abandon the transfer, this is incorrect and caused some textures to clog.
- The texture throttle blocking queue is now only filled in relation to the actual throttle amount.. i.e, on a connection throttled to 300k, only twenty packets will be placed in the queue at a time, on a larger connection it will be much more. This is to balance responsiveness to requests and speed, and to minimise wasted packets.
- The engine now keeps track of the number of pending textures, and the stack will not be walked if there's no textures pending, saving CPU. Textures are only considered "pending" when they've already been decoded.
- As part of the above, some textures may receive twice as much data per cycle if the number of pending textures is below the cycle threshold, this should prevent loading from slowing down when there are fewer textures in the queue.
Adds a test to see if the first option on osDynamicTextureData is "AltDelim",
then picks up the first character after the whitespace and uses as a delimiter
instead of ;. If this string does not appear at the start of the data, the
default ; will be used, hence this should not break existing code.
WindModule plugins --- manifesting itself through:
2009-04-16 15:32:02,764 [Heartbeat for region sea 3] [Scene]: Failed with exception System.IndexOutOfRangeException: Array index is out of range.
at System.Random.Sample () [0x0003e] in /usr/local/src/mono/build/mono-2.0.1/mcs/class/corlib/System/Random.cs:91
at System.Random.NextDouble () [0x00000] in /usr/local/src/mono/build/mono-2.0.1/mcs/class/corlib/System/Random.cs:142
at OpenSim.Region.CoreModules.World.Wind.Plugins.SimpleRandomWind.WindUpdate (UInt32 frame) [0x00019] in /tmp/opensim-deploy-oTyFP12501/opensim-deploy/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs:92
derived classes
- make OpenSimBackground inherit from OpenSim instead of OpenSimBase
so that it will have a MainConsole instance and we can use console
commands, setting m_gui to false
* Tweak the LLSetStatus results in the ODEPlugin. Hopefully it's a little less unstable.
* ODEPlugin is using experimental math for LLSetStatus, use with caution! :)
* This may eliminate the occasional archive test freezes, since they appeared to occur when somehow the asset server didn't pick up on the presence of a request in the asset
quque
* WebStatsModule doesn't crash on restart. GodsModule doesn't crash when there is no Dialog Module. LLUDPServer doesn't crash when the Operation was Aborted.
* ODEPlugin does 'Almost NaN' sanity checks.
* ODEPlugin sacrifices NaN avatars to the NaN black hole to appease it and keep it from sucking the rest of the world in.
- Fixed some locking issues. Either lock, or don't (if you don't have to). Only locking access half of the time won't work reliably.
- Had to adapt test helpers that use the "old" IRegionModule. TerrainModule isn't one anymore.
* Introduced preprocess step in FetchAsset (Might revert this later)
* Some minor CCC
* Added actual implementation of GetUserProfile( uri ) and the corresponding handler to OGS1.
* Introduced non-functioning GetUserUri( userProfile) awaiting user server wireup (this might move elsewhere)
This is sent to all root prims of all attachments of an avatar when the
animation state changes. llGetAnimation() can thenbe used to find the
new movement animation. This eliminates the need for fast timers in AOs
* Interfaces now live in Interfaces subdirectory.
* Namespace does not yet reflect this change.
* Final namespace for MRMs will probably sit somewhere around OpenSim.Extend.MRM[?]
Fixes Mantis #3421
Change the agent/avatar events subscriptions to just OnNewClient. The data only needs to be sent once and keeping track of log ins/movements is not required. This will also send cloud data to child agents so that they can see clouds above neighbouring regions not just regions that they have visited.
of objects from the scene, and of scripts from objects. This facilitates
the development of modules that can register prims with externall servers
for inbound email and XMLRPC. Currently implemented in XEngine only.
Also applying cmickeyb's compiler locking patch, since it seems risk-free.
* Revamps the server side texture pipeline
* Textures should load faster, get clogged less, and be less blurry
* Minor tweak to ensure the outgoing texture throttle stays private.
* Fixes mantis 3440
Addresses Mantis #3381
The current implementation works as expected if the object has no rotation or
only rotation around the Z axis; you can spin the object left or right (around
the world Z axis).
It works a little unexpectedly if the object has a non-Z-axis rotation; in this
case the body is spun about its local Z axis, not the world Z-axis. (But SL
also behaves oddly with a spin on an arbitrarily rotated object.)
* Add cursory integration with script engine.
* LLMoveToTarget, LLSetBouyancy, LLSetStatus (Physical only), LLApplyImpulse, LLApplyTorque, LLPushObject.. etc.
* Still missing linked physical active and LLSetStatus with an axis lock.
* Enables border crossings when using the BulletDotNETPlugin
* Enabled variable time steps in BulletDotNETPlugin
* Still no 'linked physical objects' yet
* Still no script engine integration
* Now, the 144 unit tests takes roughly as long time to run (16s on my laptop) that the 10 long running takes. The database tests takes forever.
* Feel free to run the unit tests as you code, and the rest before commit.
The attached patch implements osKey2Name and osName2Key
which converts between a UUID key for an avatar and
an avatar name and vice-versa.
osKey2Name is similar to llKey2Name except that it will work
even if the avatar being looked up is not in the same region
as the script.
* This allows you to utilize System.Drawing tools on textures within the region.
* Example: use System.Drawing.Bitmap to make your texture, then use Host.Graphics.SaveBitmap to make an asset from it in JPEG2K. You can edit (but not overwrite) existing textures using Host.Graphics.LoadBitmap.
* This makes MRM scripting ever so slightly more secure. If you have enforced Object Permissions enabled, it may be acceptable to enable MRM within your regions.
* Security bug reports on this feature are much appreciated (eg: anyone finding ways around this to execute a MRM as a basic user).
* Corrected issue with MRMs where it would attempt to overwrite an already loaded DLL. (and thus fail with cryptic UnauthorizedAccessException.)
* Made DrunkenTextAppreciationModule.cs MRM not crash with StackOverflowException
* Added some temporary logging to MRM World.*
* Avatar and Object now inherit from IEntity.
* Avatar.Position is now Avatar.WorldPosition to match IObject property.
* Implements event World.OnChat += delegate(IWorld sender, ChatEventArgs e);
* Optimizes SceneGraph - fetches on primitives via "GetGroupByPrim" wont search the entire list if the primitive is infact the root. (Core)
* Updates Test MRM.
* Notes: this requires heavy testing, it may cause new issues where LL have recycled agent block data for non-security purposes. It can be disabled on Line 4421 of LLClientView.cs by changing m_checkPackets to false.
* This represents approx 1/8th of the packets being checked.
* Now validating input to the Physics scene and warning when something is awry.
* This should help nail down that Non Finite Avatar Position Detected issue.
- Change several classes to use the new plugin for handling of region-modules
(NOTE: No regionmodule is using this yet)
- Add necessary prebuild parts (don't forget to runprebuild)
Attention: Work in progress. This shouldn't break anything, but you never know...
* It's not ready to try. It doesn't do what you expect in many ways.
* It throws errors and prints jibberish on the console
* Test it out only if you're brave and you've backed up first.
* The opensim.ini line is physics = BulletDotNETPlugin
Added safemode config to Standalone Hypergrid, similar effect to AllowRegionAccessToInventory in Inventory Server. Everyone should have these vars set to their default values except me!
* Adds IObject.WorldPosition and IObject.OffsetPosition - this is equivilent to AbsolutePosition and OffsetPosition in SOP respectively.
* Adds IObject.WorldRotation and IObject.OffsetRotation - as above.
log4net config file other then bin/OpenSim.exe.config
- moving ArgvConfigSource initialization up to allow for configuration
of XmlConfigurator.Configure()
This Fixes Mantis #3331
Also corrected the capping calculation in llApplyImpulse and several integer "boolean" comparisons from "== 1" to "!= 0" for true
* Renamed 'Material' to PhysicsMaterial (Wood, Glass, Metal, etc.). May want to place in subclass with other physics specific properties. (We however need to support these features in ODE/etc first.)
* Renamed Faces to Materials. IObjectFace to IObjectMaterial - this is for clarity for those coming from a 3D Programming background (it also makes more sense if/when we support Meshes in core). Properties and members remain identical.
* Added XMLDoc comments to IObject to assist people writing MRMs in XMLDoc aware editors.
* Changes World.Objects from Array IObject[] to IObjectAccessor.
* Syntactically identical in most behaviour, however the indexer is now ranges not from 0..Count, but any valid internal LocalID. Additional indexers have been added for UUID.
* Example: for(int i=0;i<World.Objects.Count;i++) will not work any more, however foreach(World.Objects) will remain functional.
* This prevents us needing to create a list for each access to World.Objects which should [in theory] present a dramatic speed improvement to MRM scripts frequently accessing World.Objects.
Permissions now use proper events and not delegate lists, which makes
for much easier reading and much less work adding new methods.
I finally found a way to raise events with return values without it becoming
late bound.
With some support from HomerH, this patch adds support for Wind
Model plugins via the mono.Addin framework.
* Adds console & OSSL access to Wind Parameters
* Adds plug-in support for custom wind models
* Provides two example Wind Model plug-ins
Documentation for the wind module is temporarily located at http://code.google.com/p/flotsam/wiki/CoreWindModule [^]
-- will move this documentation to http://opensimulator.org [^]
after the patch has been committed.
* This may help one of the symptoms or mantis 3363 , however it probably won't solve the occasional NonFinite Avatar Position detected.. issues that some people see. That is probably an entirely different issue(NaN).