exe for each function, rather each function is a connector and the server ini
loads them. If you like your multiple processes, use -inifile with the server.
Otherwise, you get one server process that serves all configured funcions, see
example .ini. The new exe is OpenSim.Server.exe. Clean your bin, loads of names
have changed!
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
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.
- 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
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.
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.
- 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
* 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 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.
* Tweak the LLSetStatus results in the ODEPlugin. Hopefully it's a little less unstable.
* ODEPlugin is using experimental math for LLSetStatus, use with caution! :)
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.
- 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!
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.
* Important: HttpServer.dll was changed to HttpServer_OpenSim.dll so that the HttpServer references do not conflict if you've copied the OpenMetaverse.Http.dll and requirements to the OpenSimulator bin folder.
This means that if you reference HttpServer.dll in any projects, you will need to change the reference to HttpServer_OpenSim.dll. It still uses the Same HttpServer namespace though.
Attached is a patch which enabled through an OpenSim.ini option the ability
to read long notecard lines. Currently although the data is read from
the notecard it is truncated at 255 characters (same as for the LL servers.
This patch allows the setting of that limit to a different value.
; Maximum length of notecard line read
; Increasing this to large values potentially opens
; up the system to malicious scripters
; NotecardLineReadCharsMax = 255
this allows for save/restore functionality using notecards without
having to worry about very short line length limits.
* 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)
* Updated code to compile against MXP 0.4 version.
* Cleaned up field naming conventions.
* Added support for logging in with region name.
* Filled in new fields of JoinResponseMEssage.
* Added support for SynchronizationBeginEvent and SynchronizationEndEvent.
* Commented out periodic debug log.
* Added networking startup log messages.
This closes mantis #3277
* Updated MXP to contain extension fragment with prims and updated MXPClientView to fill in the parameters.
* Added google protobuffers dll.
* Update MXP dll.
* Updated MXPClientView to send prim parameters as Perception event extension
* Started OpenSim and connected with IdealistViewer via MXP and ensured from log that parameters are being sent.
* Ensured that nant test target runs succesfully.
This closes mantis #3229. Thanks, tlaukkan!
* Handled via the MXPModule.cs located in OpenSim.Client.MXP namespace.
* Also implements MXPClientView and MXPPacketServer for IClientAPI compatibility.
* No changes were required to Core to implement this - the thing is self contained in OpenSim.Client.MXP.dll.
* Includes reference implementation of MXP as MXP.dll - this is under the Apache 2.0 license.
* Requires OpenSim.ini setting to enable. "[MXP] \n Enabled=true \n Port=1253"
* May break. Highly untested.
The built-in default is OpenSim, unless a user server url is given, then
that is used, unless "shard" is also goven, then shard takes precedence.
The defult in OpenSim.ini is "OpenSim" for compatibility.
* Something that thus needs fixing is the fact that ProjectReferences has to be marked
<ProjectReference>
<Private>False</Private>
</ProjectReference>
but that is not configurable in the upstream Xml Schema. I've hardcoded it in our repo for now.
* Applied upstreams changes to allow for auditing and debugging in our various environments.
* This should, in theory, bring back 'multiple ref dirs'.
* Temporarily Removed xmlns because prebuild-1.7 schema does not allow for multiple solutions per prebuild node (This will be a moot issue once the Prebuild node is moved out of prebuild.xml)
* Autotools target: Various minor fixes
* MonoDevelop Target : No changes.
* Nant Target: Various minor fixes, support for net-3.5 and mono-2.0/3.5 targets
* Sharpdevelop targets: No changes.
* VS Targets: Refactored into using VSGenericTarget, and supports 2.0-3.5
* XCode Target: No changes.
--- Regressions and outstanding issues ---
* The Solution is assigned a random Guid - will lead to unnecessary reloads and loss of user settings.
--- New features of Prebuild 2.0.4 ---
* (Better) support for Web, WinForms and Database Projects and build actions
* Conditional Framework Version compilation support (1.1, 2.0-3.5)
* ArrayList -> List<>, ICollection -> IList
(this means Prebuild can generate 1.1 solutions, but can't itself be built under 1.1 - how very meta)
* Added <?include file="sub_prebuild.xml" ?> preprocessor directive.
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.
AssetInventoryServer with the standard OpenSim license header
- add note about Cable Beach to CONTRIBUTORS.txt
- clean up AssetInventoryServer.ini.example
This changeset add the RegionReady module code. The module sends a
message on a configurable channel when an oar file has finished
loading or if the script engine has emptied its queue for the first
time (eg server startup). Config is something like this:
[RegionReady]
enabled = true
channel_notify = -800
The module also knows if there was an error with startup.
* This adds more explanation for the new proxy settings in OpenSim.ini.example
* Also does some formatting correction
* I did some additional reformatting on top of that
* 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
* Adding an option to use the tree module to manage the trees in the simulator (grow/reproduce/die)
* Setting it to off by default in an effort to reduce the number of threads in use by default
* You can also turn it on in a 'one off' way with 'tree active true' on the console. To 'one off' turn it off, it's 'tree active false'. The permanent way to do that, however is in the opensim.ini.
* Added Npgsql.dll and Mono.Security.dll which are NpgsqlDriver dlls.
* Added missing field to schema creation scripts: PathTaperY.
* Added schema creation scripts for PostgreSQL.
* Added unit test classes for PostgreSQL.
* Added schema creation script folder to NHibernate project in prebuild.xml
* Added Npgsql.dll to NHibernate test project dependencies in prebuild.xml
* Ensured that build works with both nant and Visual Studio.
* Executed build unit tests with nant and NHibernate unit tests with NUnitGUI
- Couple of region tests fail due to double precission float rounding errors need to sort out how these are handles in unit tests and if higher precission numeric field needs to be used in Postgresql.
* Adds a prototype web stats module which is disabled by default. It's functional with one report right now, however, the database structure may change, so I don't recommend enabling this to keep actual stats right now. I'll let you know when it's safe.
* Adds Prototype for ajaxy web content
* removed a warning or two.
- Adapted code to match the corrected signatures
- Fixes Mantis #2934. Hopefully.
Note: Physics on linked objects still don't work correctly:
It doesn't crash the region anymore, but the example object in
the mentioned mantis now falls through the ground.
* 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
* http://www.codeplex.com/webserver/WorkItem/View.aspx?WorkItemId=3110 fix erronious call to beginread that caused an exception which was caught and ignored (increase performance)
* Pass socket into httpclientcontectImp and call the disconnect + reuse method so the socket can be reused quicker (increase performance)
* Ensured that in every error scenario beginAccept is called (stability)
* Fixed header casing (standards compliance)
* Fixed Connection: close handling (standards compliance)
The attached patch ads an OpenSim.ini option (AutomaticLinkPermission)
which when enabled makes PERMISSION_CHANGE_LINKS to be granted to
scripts by default. When enabled llGetPermissions will always return it
as granted and llCreateLink//llBreakLink will succeed without
doing llRequestPermissions. ONLY ENABLE THIS IN TRUSTED ENVIRONMENTS.
The patch also fixes a minor bug in llCreateLink
related to a potential dereference of a null client object.
* Disabled by default (see OpenSim.ini.example for how to enable)
* Saves exceptions to a folder on disk (default "crashes") when enabled.
* These reports can then be uploaded or posted to help debug an error.
* This patch gets NHibernate working
*** PLEASE NOTE: This patch now requires the libmono-oracle2.0-cil library to be installed on Ubuntu (to stop the System.Data.Oracle missing failure) ***
* Not sure what the dependency is on other distros. Adding this info to http://opensimulator.org/wiki/Build_Instructions would be most welcome
* Adds Castle.* libraries that were missing last time (note, dlls have been added from http://downloads.sourceforge.net/nhibernate/NHibernate-2.0.1.GA-bin.zip)
* This resolves problems on Linux detailed in http://opensimulator.org/mantis/view.php?id=2734 where System.Data.Oracle libraries can't be found
* On a quick look I can't see that these exist on mono 1.9.1
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
* This allows one to override normal OpenSim permissions and prevent non-gods from editing any scripts. This allows edit ability
to be rescinded after it has been given, and prevents the security hole where a single script with liberal perms would allow code changes.
* The default setting remains the existing one of never overruling normal edit permissions.
* These two settings may be enough to stop non-gods entering artbirary script code in a closed grid/standalone configuration.
causes defautlt behavior. "true" now means usable unconditionally, "false"
means disabled, and a list of UUIDs restricts it.
This changes SECURITY! If you used "true" here before, you shoudl review
your setup!
Objects will be persisted now MinimumTimeBeforePersistenceConsidered seconds
after the last change, but latest MaximumTimeBeforePersistenceConsidered after
the first change (both are configurable in OpenSim.ini.example and are set to
60 and 600 as default).
* This doesn't allow complete script lockdown of a sim, many avenues (copying, editing) are still uncloseable at the moment
* Default remains to allow all users to create scripts (subject to existing permissions if enabled)
* Switch default for serverside_object_permissions from false to true - it seems more natural that we enforce permissions by default rather than not!
* Add some explanation in OpenSim.ini.example for serverside_object_permissions
will allow people who don't want megaprims in their sim to prevent them
from being created. Any prim rezzed or pulled across the border will be
clamped to the size specified in OpenSim.ini if this option is set.
regions that XmlRpcCreateRegion will create: if region_limit is != 0
then XmlRpcCreateRegion will only create a new region if the number of
regions already existing is below region_limit.
* Licensed under MPL License.
* Adding to be used in the AssetCache, this cache allows you to do things like specify rules on when cache items should be removed (ie 24 hours since last access, etc).
* No code changed in this commit.
* Really this should be 1, but I think that this would be too slow compared to a Second Life server until we improve our ability to send textures of variable quality
* This may improve one aspect of sim performance where there are many avatars. However, there are still other performance problems that are unrelated to this change
* Value may be further tuned
* Removed temporary decals since the multipler setting will stick around now
* Inserts proper animation state names into data/avataranimations.xml file so that llGetAnimation() works as one would expect.
* Thanks StrawberryFride!
* This should probably be 1, but currently by default it is 8, to reflect what was being eon3 in OpenSim before this revision. So if the client requested a maximum throttle
of 1500 kilobits per second, we would actually send out 1500 kilobytes per second
* Adjusting this multiplier down towards 1 may improve your OpenSim experience, though in other situations it may degrade (e.g. if you're using a standalone over high bandwidth
links)
* This is currently a user setting because adjusting it down may currently reveal other OpenSim bugs.
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.
logic to ConciergeModule. adding XmlRpc method to allow update of
welcome template for a region. documenting [Concierge] "password"
option in OpenSim.ini.example.
chat relaying via private channels, and old IRCBridgeModule
behaviour. also cleaning up IRCBridgeModule's OpenSim.ini
configuration variable names (still supporting "old" variable
names). refactored IRCChatModule into IRCConnector and incorporating
watchdog from IRCBridgeModule into IRCConnector.
enabling ChatModule to be used as a super-class and utilizing it in
ConciergeModule.
* 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.
* If you're experiencing knee bendiness try the windows settings, as the *nix settings seem to now be incorrect. (this update does that, but you may have your own opensim.ini settings active.
* Mac users, pray to chi11ken to make you a .dylib version
* This is semi-tuned and post teravus hack. (Though I didn't apply the terrain pitting fix hack. I'm still deciding if it's necessary as there was a lot of work over the past several months on the heightfield collider.
* Please use '--enable-shared --disable-demos --disable-asserts' if you are building your own libode in the configure step. Asserts are pretty much useless for use with .NET
* This also updates ODE.NET as, there were some API changes in May that were just added to ODE.NET today.
See mantis #2379 for some useful scripts that work with this.
Note that I added another configuration parameter in addition to the patch to allow for legacy behavior in the absence of new configuration settings.