* Sometimes, null is a valid return value to indicate 'none found'. doh.
* Sometimes, the Grid server does not send simURI - this you need to reconstruct yourself. Euw.
(I believe) this solves mantis issue #3287
* 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)
* Finally got to the point where I could pull up the CustomiseResponse function. Major de-duplication.
* Introduced FromRegionInfo on RegionProfileData
* This revision needs both grid and standalone testing galore.
Work in progress!
* A saved archive now immediately expires the data in the asset cache that it used, rather than retaining all the assets (esp textures) in the cache.
* This is an imperfect solution. Ideally we would only expire the assets newly requested for the archive (not existing ones). But doing that would require a lot more
restructuring.
* I don't believe there are any locking issues due to the locking performed by the underlying memory cache, but please report any issues.
There were multiple tests in one test method (T011_Auth_Login). This
test has been refactored into multiple tests. Common setup code was
placed into a SetUp method executed before each test.
Recent changes in the code handling login_to_simulator XMLRPC method
calls caused two tests to fail because not enough parameters were being
supplied with the method call. The parameters added in this patch work,
but I'm not sure whether they are actually correct or even relevant.
Diva, please look over this.
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.
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
I've changed the extension point name, and the internal references that
used the same string. I also fixed up the messaging around the asset
loader so that it is more explicit.
The change makes two principal implementation changes:
[1] It removes the hard coded set of possible asset server client
implementations, allowing any arbitrary implementation that has been
identified to the PluginLoader as an appropriate extension. The
extension point for asset server client extension
is /OpenSim/AssetServerClient. All of the old configuration rules have
been preserved, and any of the legacy configuration values will still
work as they did before, except the implementation is now loaded as a
plug-in, rather than as a hard-coded instantiation of a specific class.
The re-hashing of IAssetServer as an extension of IPlugin made upgrading
of the implementation classes a necessity.
Caveat: I have not been able to meaningfully test the crypto-grid
clients. I believe they should work correctly, but the refactoring
necessary to handle plug-in based initialization (vs constructor-based
initialisation) admits the possibility of a problem.
[2] The asset cache implementation, previously introduce as a hard-code
class instantiation is now implemented as an IPlugin. Once again the
previous (configurationless) behavior has been preserved. But now it is
possible for those interested in experimenting with cache technologies
to do so simply by introducing a new extension for the asset cache
extension point (/OpenSim/AssetCache).
I've tested all of the configuration settings, after applying the patch
to a newly extracted tree, and they seem to work OK.
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.
OpenSim.Region.Environment into a "framework" part and a modules only
part. This first changeset refactors OpenSim.Region.Environment.Scenes,
OpenSim.Region.Environment.Interfaces, and OpenSim.Region.Interfaces
into OpenSim.Region.Framework.{Interfaces,Scenes} leaving only region
modules in OpenSim.Region.Environment.
The next step will be to move region modules up from
OpenSim.Region.Environment.Modules to OpenSim.Region.CoreModules and
then sort out which modules are really core modules and which should
move out to forge.
I've been very careful to NOT BREAK anything. i hope i've
succeeded. as this is the work of a whole week i hope i managed to
keep track with the applied patches of the last week --- could any of
you that did check in stuff have a look at whether it survived? thx!
* This option makes OpenSim use the usual db based asset service in standalone, and the grid based one in grid mode
* The other options can (local, grid, etc) can still be used explicitly as before
* Also change OpenSim.ini.example and the surrounding explanative text
* This allows configuration of the assetset and library control file paths to be other than ./inventory/Libraries.xml and ./assets/AssetSets.xml
* This is controlled via the LibrariesXMLFile and AssetSetsXMLFile configuration settings in [StandAlone] in OpenSim.ini (in standalone)
and via the user and asset config xml files for grid mode
* Thanks to SirKimba for the patch
* This facility allows you to save changes to an object that you've rezzed into a region back into their original inventory item without having to take a copy of the rezzed
object.
aggressive at nixing the user out of the cache. We're now relying on NeedSceneCacheClear to decide
whether to nix it or not. All other mods in other files are for better debugging messages.
* This means that UserProfileCacheService no longer needs to know about IClientAPI and can leave it to callers to do their own error logging
* This is also more consistent with the way that item inventory manipulation is handled
* I don't really think Scene.PacketHandlers.cs should be a permanent home for these handlers - this is just for convenience
* This means that LL RAW terrains (one source being the upload/download buttons on the estate dialog in the viewer) are now imported the 'right' way around rather than being
flipped on the y axis
* Existing RAW terrains before this patch will need to be flipped with the "terrain flip y" command from the console after import
* More details on the mailing lists soon.
-This line, and those below, will be ignored--
M OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs
M OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
M OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
* However, this is not currently activated since it's not absolutely fully tested and there's a bug lurking in there to do with the sending of the BulkInventoryUpdate packets
* This is Diva's hypergrid patch, as perviously discussed on the opensim-dev mailing list
* Applied some minor prebuild.xml jiggling to resolve a dependency issue
* Thanks Diva!
from the presence module to the message server, through the user server
and on into the database. This should fix the "Already logged in" issue
that grids see after a sim crashes, or a user crashes out of a sim.
Not yet a 100% solution for friends, but getting there.
This patch adds the option of adding the email when you create
a new user. This works in Gridmode as none Gridmode. This
option is also added to RemoteAdminPlugin. With a new handler
you can create a user with a email.
release a direct descendant of the stable 7364, with all the features and
none of the issues.
This omits the following patch chain: r7383 r7382 r7381 r7377 r7375 r7373
r7372 r7370 r7369 r7368 r7367 r7366
* Code Cleanliness Fixes in LLClientView
* Using field instead of local variable for handlerUpdatePrimGroupRotation (if you notice any new oddities with prim group rotation after this patch, please mantis)
* Items will now be locally cached for only 24 hours from last access. (Rather than until restart)
* Caveat: Implementing the new caching mechanism means statistics gathering on AssetCache is no longer functional. (Justin - you might want to take a look and see if you can somehow get that back and running if you still need it)
This patch introduces a couple of read-only properties,
so that I can grab the asset server plugin from a region
module. This is needed to set up an http service for
accessing standalone assets remotely.
on-/offline updates, calling cards for friends.
This adds methods in the DB layer and changes the MessagingServer, so a full
update (incl. UGAIM) is necessary to get it working. Older regions shouldn't
break, nor should older UGAIM break newer regions, but friends/presence will
only work with all concerned parts (UGAIM, source region and destination
region) at this revision (or later).
I added the DB code for MSSQL, too, but couldn't test that.
BEWARE: May contain bugs.
* Whilst this does automatically get the client to rebake, on crossing a region border the 'local' assets are left behind
* There may be a cunning solution (such as squirting the assets on region crossing, or having them fetched from the original region) but
instead I'm going to opt for the easy solution of keeping them in the asset database, for now
* And hopefully rebaking all the time should no longer be necessary now
* It turns out that when the client baked the texture, the uploaded asset had the Temporary flag to true (Temporary is actually deprecated).
* It also had the StoreLocal flag set to true, which signifies that the asset should be stored locally. If it disappears we should reply to the asset request with
ImageNotInDatabasePacket
* However, last time this was enabled some clients started crashing. This may well no longer be the case and needs to be tested, but in the mean time we will store
the asset instead.
* This needs to be resolved in a better way, possibly by starting to send the ImageNotInDatabase packet again instead
KeepAlive for certain XmlRpc handlers.
Making use of new AddXmlRpcHandler method in RemoteAdminPlugin to
avoid clients waiting indefinitely for response.
taking note of BaseHttpServer parameter in CommunicationsManager
constructor (was passed it but then just ignored so far).
* Unix epoch starts at midnight, not at 8:00am
* All date/time handling should be done in UTC in the server, not in
the local timezone.
* Refactor out repeated computation of a constant value
- Added setting of CreationTime to some places where inventoryitems
are created
This fixes Mantis#2390.
Add rezzing time to objects. Add Object return and traffic fields to land
database. Add plumbing for auto return. Implement auto return.
Contains a migration. May contain nuts.
* This allows multiple user profile providers to be specified in OpenSim.ini separated by commas
* If multiple providers are specified then a request for a user profile will query each in turn until the profile is either found or all have been queried
* Unfortunately I don't believe this order can currently be specified, which if true is something that will need to be fixed.
* Thanks to smeans for the original patch.
- Added two missing caps (UpdateScriptAgent, UpdateScriptTask)
- Added one missing EventQueue event (ScriptRunningReply)
- Changed DNE and XEngine to use this new event
As we only use the mono engine anyway, the "Mono" checkbox is set by
default but doesn't have any function.
- Added lookup in the data-layer
- MySQL works
- SQLite doesn't have a grid-db, so it won't work there
- I added MSSQL-code to the best of my knowledge; but I don't know MSSQL :-)
- Added the plumbing up to OGS1GridServices. This speaks with the grid-server
via XMLRPC.
- Modified MapSearchModule to use the new data. It's backward compatible; if
used with an old grid-server, it just returns one found region instead of a
list.
- Refactored a bit.
Note: This updates data, grid-server and region code. No new files.
required to log in. set_login_params accepts avatar_uuid and password of a
user with god level 200 or more, and allows setting either or both the
login_motd or login_level
* This is a HUGE update.. and should be considered fraut with peril.
* SSL Mode isn't available *yet* but I'll work on that next.
* DrScofld is still working on a radical new thread pump scheme for this which will be implemented soon.
* This could break the Build! This could break your Grid!
* This is an initial basic experimental code for inventory import and export from the region server
* Probably not yet ready for general use
* Thanks Kayne!
Active gestures are sent as part of the login-response. Added
fetchActiveGestures to SQLite and MySQL; added an empty one for MSSQL and
NHibernate. Using the empty ones won't cause errors, but doesn't provide
persistence either, of course.
* There was a small window where region logins were allowed before modules were loaded - avatars logins that hit this window could have caused bad things to happen.
* A similar change will follow for grid mode sometime soon
* the methods were identical except that the Properties one did a check for the user profile beforehand. However, every caller was doing this already anyway.
* This patch aims to introduce look at direction persistence between logins. It won't be active until the second part of the patch is committed in about two weeks time. At
this point, region servers that haven't upgraded past this revision may run into problems
* This checkin upgrades the user database. As always, we recommend you have backups in case something goes wrong.
* Many thanks to tyre for this patch.
patch is attached that replaces the o(n^2) algorithm currently
used to build the inventory cache with an o(n) algorithm using
hash tables. the patch also adds some additional error handling.
* Now it should properly inform the user and stop a login if a region server could not be contacted in order to expect a user (the last commit didn't actually quite work correctly)
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point. Regular people should let the dust settle.
* This has been tested to work with most basic functions. However.. make sure you back up 'everything' before using this. It's that big!
* Essentially we're back at square 1 in the testing phase.. so lets identify things that broke.
* You can replace "grid" as the asset system with "file" to save and load all your assets from a directory on your hard disk. Files are serialised to XML and saved in the format "/<dir>/0x/0x/0x/0000-0000-000000-0000-0000.xml"
* Directory <dir> is sharing the Asset Server URL path, use a normal path here instead (ie C:\xyz or /var/assets/).
* This probably wont work well in grid mode unless every sim has access to the same directory. This is mostly intended for standalone usage where quick and convenient access to assets is required.
no OpenSim.ini file found by GridInfoService. GridInfoService now will
just issue a warning that GridInfo will NOT be available to your users
if no OpenSim.ini file is available. due to the static nature of
UserConfig (configuration options hardcoded) i don't think it's currently
an option to move GridInfo into user_server.xml but if anyone wants to
look into this i'd be delighted...
* There are a lot of changes and this is quite experimental. It's off by default, but you can turn it on by examining the bottom of the opensim.ini.example for the proper OpenSim.ini settings. Remember, you still need an agent domain..
* Furthermore, it isn't quite right when it comes to teleporting to remote regions (place_avatar)
This small patch provides the required changes to populate
the columns agentIP and agentPort in table "agents"
Tested with mysql (but should work for all supported db engines)
also enable LSLconformance on some texture functions as well.
Applied the part of the patch in Shared/.
The part for Common/ needs to be reworked to remove the reference
into Shared/
It is now possible to use module interfaces without referencing Scene.
Place those interfaces in OpenSim/Region/Interfaces. They may not
use any refs from OpenSim.Region.Environment as parameters.
This resolves a circular library ref introduced in r5949
Change user server to handle attachment assets record properly. Ensure
that attachments are not re-rezzed on region crossing. Persistence
will NOT WORK with earliser UGAI!!
Change region server to match.
Places touched:
- Added two events for in-packets to LLCLientView: RegionHandleRequest and
ParcelInfoRequest
- Added sending of two out-packets to LLCLientView: RegionIDAndHandleReply and
ParcelInfoReply.
- Scene handles the RegionHandleRequest, LandManagementModule the
ParcelInfoRequest
- Added inter-region request for LandData by RegionHandle and local position.
This was implemented as XML-RPC request. The returned LandData isn't
complete, it only contains the data necessary for answering the
ParcelInfoRequest
- Added new CAPS (0009) for RemoteParcelRequest and some methods for LandData
handling to LandManagementModule
- Added methods for fake parcelID creation and parsing to Util
- Fixed missing implementation of interface methods.
- Added new file:
OpenSim/Framework/Communications/Capabilities/LLSDRemoteParcelResponse.cs
NOTE: This is part of the patch, too.
Due to the many places touched, I would consider this patch as experimental.
* This is being done by preventing close from being called twice on child agent closure (nres which would have been thrown are being swallowed).
* However, it should be possible to do much better cleanup on this code in the future
occasionally, but are fixed on restart (issue 1919).
This patch introduces the following changes:
1. when a user teleports out of Region A, remove that user's profile
from the Region A user profile cache
2. when a user crosses between regions out of Region A, remove that
user's profile from the Region A user profile cache
3. the user profile cache's session ID member can now be set (written),
and is updated each time a connection with a new avatar is established (ie: a
new avatar enters the region)
4. when a region server looks up a user profile and a cache miss
occurs, fetch the user profile from the user server first instead of
immediately returning null
* May resolves inventory problems that occur when the user moves between two regions`
* e.g. if the user moves to a second region, adds an inventory item, moves back to the original region then tries to manipulate that item
* Not yet implemented for teleport
- LLSDLoginMethod should error out in similar way to XMLRPC login for already logged in condition
- Have LLSDLoginMethod mirror the sequence of the XMLRPC for easier side by side compare
- Log messages report which process XML or LLSD generated them for easier debugging
Add a test event handler (which would fire after a minute if a terrain packet hadn't been acked) to scene to handle the OnUnackedTerrain event, which currently just resends the terrain patch.
The idea of this packet tracking is for the region level application to be able to know if the client stack gave up on sending a packet.
Changes the permissions module to make scripts permissive only when intended
Adds security checks to asset transfers to prevent hacked clients fron
requesting script sources.
Adds security checks to llClientView to verify all aspects of ownership
and permissions for inventory based script retrieval.