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.
Added two new (optional) attributes to create_user and update_user
requests.
<gender> - can be 'm' or 'f'. 'm' is default if not specified.
<model> - specifies another, existing, avatar that should be used
as an appearance prototype for this user.
If <model> is specified, then <gender> is ignored. If <model> is not
specified, then 'm' implies a model avatar of "Default Male", and 'f'
implies a default of "Default Female".
At the moment the inventory is not copied. This change means that an
avatar will only look like ruth if none of the possible models exist
in the user database.
- Adds an admin_modify_region call to allow changing of parcel voice
settings and changing of public/private status
- add boolean "public" and boolean "enable_voice" to
admin_create_region XmlRpc call to allow specifying of
public/private status and to allow enabling voice for all parcels;
also added config variables to allow setting of defaults for those
- fixing cut-and-paste artefacts
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
the number of times we are going to take this lock in a row (which is
just wasted resource), and to keep us from attempting to array access a
list which might be changing right now. Extremely curious if this helps
prevent some of our mono segfaults.
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.
Adds connectivity to grid regions.
* Fixed UserService cast.
* Added exception handling to avoid mxp message handling
thread to exit and hang the module on unhandled exception.
* Some methods were returning the value of the first plugin queried, even if the return was null
* Other methods are probably best off querying more than one plugin and aggregating results
* 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.
* Nonfunctional, but eventually form a AJAX-accessible client protocol - for clients written in environments which only allow HTTP (eg HTML, Silverlight, Flash, etc). Designed for super-lightweight clients.
* 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.
comprehensive list of all regions in one go (in contrast to the
/admin/regions/ REST call).
Example:
% curl http://127.0.0.1:9000/admin/regioninfo/
<regions max="10" number="1">
<region avatars="0"
external_hostname="127.0.0.1" ip="0.0.0.0:9000"
master_name="Mr X" master_uuid="b757d5f9-7b36-4dda-8388-6e03dd59b326"
name="London" objects="6" uuid="49253666-a42e-4f44-9026-d23f93af31d7" x="1000" y="1000"/>
</regions>
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.
* This corrects problems seen on some SQLite systems where the migration fails because the two argument substr() isn't implemented
* Thanks RemedyTomm!
* 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.
* Remaining inconsistent uuids (non dashed) are in region store for sqlite and mysql
* Migration of these will happen at a later date, unless someone else wants to do it
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.