This patch fixes a problem in the RestXmlWriter where an exception may be
thrown when ToString() is called. ToString() is closing the last tag prior
to returning the string object, which it shouldn't do. People should be
closing the XML tags and document properly and not rely on the ToString()
side effect to do it for them. This is most noticeable if you hit
the /regions/ and /regioninfo/ REST calls. If you are running r9579 or
later, these calls will result in an error.
The admin_close_region method removes a region from the simulator without deleting it.
The region can then be recreated by calling admin_create_region with the same UUID.
There is also a change to admin_create_region to facilitate this.The reason I want
to have this functionality is to make it possible to detach regions when they are
idle and recreate them on demand through a web interface. It's probably doable
using the existing methods by saving and loading oars, but it also doesn't seem
like that should be necessary.
Several improvements in the connectors themselves.
Several improvements in configurations.
Needed to add a hack in IUserService and UserManagerBase, to be removed when that service is refactored.
* If you have something using XmlRpc that isn't in core, change your method signature from:
(XmlRpcRequest request)
to:
(XmlRpcRequest request, IPEndPoint remoteClient)
The format of the terrain data is: the floats encoded in Base64 and serialised into xml. So I think far from ideal, but as the support for outputting that format was already there...
Still need to hook up a method for remotely loading this data.
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
- 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
(XmlRpc boolean encoding) to return boolean values --- sometimes both
variants in the SAME XmlRpc method! As XmlRpc DOES have a proper
encoding for boolean, i think we should use that --- having a mixture
of both is a bad thing in any case.
this patch changes all "true"/"false" boolean "encodings" to just
true/false which will be properly encoded by XmlRpc.
BIG FAT NOTE: this might/will break existing customers of
RemoteAdminPlugin --- make sure your scripts, apps, etc get updated
accordingly (unless you have already been dealing with this mess
before)
This update implements support for creation of one or more
default avatars from information contained in a file
default_appearance.xml. Each avatar may have any number of
"outfits" with each outfit representing a different ensemble.
The default avatars get created the first time the RemoteAdmin
interface is used to define a user.
I've tested this quite a bit, but it will benefit from lost of
attention, I'm sure.
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.
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
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.
* Make OGS1UserServices inherit from UserManagerBase
* This allows grid mode regions to use the same user data plugin infrastructure as grid servers and standalone OpenSims
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>
- 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...
Fixed problem with REST services caused by changes to the OpenSim
core code base - the comms manager had been 'modularized'.
Also added additional debugging to RemoteAdmin interface.
optional about_virtual_world and about_real_world parameters to
XmlRpcUpdateUserAccountMethod to allow setting of "About" and "First
Life" tab in avatar profile.
* In most cases, the setting in OpenSim.ini.example is taken as the canonical one since this is the file virtually everyone ends up using
* OpenSim will start up with a blank OpenSim.ini, in which case sqlite is the default database (as before)
Changed OpenSim.Framework.Communications.Tests.LoginServiceTests to use the LLStandaloneLoginService (from the LLStandaloneLoginModule) rather than LocalLoginService. Really these login tests should most likely be somewhere else as they are testing specific implementations of login services.
Commented out the old LocalLoginService as its no longer used, but want to check there are no problems before it gets deleted.
Also in that plugin it registers the IUserService with all the Scenes (as they are created). So now we can start changing over all uses of IUserService, that currently access it from the CommunicationsManager to accessing it from the Scene.RequestModuleInterface call.
Once that is done we can move the UserService creation out to its own plugin and remove all references to it from the CommunicationsManager. Then we can take the next CommunicationsManager interface and repeat.
Added a ApplicationRegistry to OpenSimBase.
Changed LoadRegionsPlugin so it registers itself to that application registry.
Added a event to LoadRegionsPlugin, that is triggered when it creates a new scene ,although maybe this event should actually be in opensimBase incase other plugins are creating regions (like the RemoteAdminPlugin).
NOTHING has been deleted or moved off to forge at this point. what
has happened is that OpenSim.Region.Environment.Modules has been split
in two:
- OpenSim.Region.CoreModules: all those modules that are either
directly or indirectly referenced from other OpenSim packages, or
that provide functionality that the OpenSim developer community
considers core functionality:
CoreModules/Agent/AssetTransaction
CoreModules/Agent/Capabilities
CoreModules/Agent/TextureDownload
CoreModules/Agent/TextureSender
CoreModules/Agent/TextureSender/Tests
CoreModules/Agent/Xfer
CoreModules/Avatar/AvatarFactory
CoreModules/Avatar/Chat/ChatModule
CoreModules/Avatar/Combat
CoreModules/Avatar/Currency/SampleMoney
CoreModules/Avatar/Dialog
CoreModules/Avatar/Friends
CoreModules/Avatar/Gestures
CoreModules/Avatar/Groups
CoreModules/Avatar/InstantMessage
CoreModules/Avatar/Inventory
CoreModules/Avatar/Inventory/Archiver
CoreModules/Avatar/Inventory/Transfer
CoreModules/Avatar/Lure
CoreModules/Avatar/ObjectCaps
CoreModules/Avatar/Profiles
CoreModules/Communications/Local
CoreModules/Communications/REST
CoreModules/Framework/EventQueue
CoreModules/Framework/InterfaceCommander
CoreModules/Hypergrid
CoreModules/InterGrid
CoreModules/Scripting/DynamicTexture
CoreModules/Scripting/EMailModules
CoreModules/Scripting/HttpRequest
CoreModules/Scripting/LoadImageURL
CoreModules/Scripting/VectorRender
CoreModules/Scripting/WorldComm
CoreModules/Scripting/XMLRPC
CoreModules/World/Archiver
CoreModules/World/Archiver/Tests
CoreModules/World/Estate
CoreModules/World/Land
CoreModules/World/Permissions
CoreModules/World/Serialiser
CoreModules/World/Sound
CoreModules/World/Sun
CoreModules/World/Terrain
CoreModules/World/Terrain/DefaultEffects
CoreModules/World/Terrain/DefaultEffects/bin
CoreModules/World/Terrain/DefaultEffects/bin/Debug
CoreModules/World/Terrain/Effects
CoreModules/World/Terrain/FileLoaders
CoreModules/World/Terrain/FloodBrushes
CoreModules/World/Terrain/PaintBrushes
CoreModules/World/Terrain/Tests
CoreModules/World/Vegetation
CoreModules/World/Wind
CoreModules/World/WorldMap
- OpenSim.Region.OptionalModules: all those modules that are not core
modules:
OptionalModules/Avatar/Chat/IRC-stuff
OptionalModules/Avatar/Concierge
OptionalModules/Avatar/Voice/AsterixVoice
OptionalModules/Avatar/Voice/SIPVoice
OptionalModules/ContentManagementSystem
OptionalModules/Grid/Interregion
OptionalModules/Python
OptionalModules/SvnSerialiser
OptionalModules/World/NPC
OptionalModules/World/TreePopulator
These changes replace all direct references to the AssetCache with
IAssetCache. There is no change to functionality. Everything works as
before.
This is laying the groundwork for making it possible to register
alternative asset caching mechanisms without disrupting other parts of
OpenSim or their dependencies upon AssetCache functionality.