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.