Commit Graph

86 Commits

Author SHA1 Message Date
diva
5e4fc6e91e Heart surgery on asset service code bits. Affects OpenSim.ini configuration -- please see the example. Affects region servers only.
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
2009-05-15 05:00:25 +00:00
Johan Berntsson
119aeeed7d Another cleanup: Region_Status renamed to RegionStatus, and a usage comment added 2009-04-15 04:15:47 +00:00
Teravus Ovares
c2e75aecd1 * Commit a variety of fixes to bugs discovered while trying to fix the NaN singularity.
* 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.
2009-04-14 01:57:35 +00:00
lbsa71
3cb06cc4cc * Changed a recursive BeginRobustReceive loop to a flat while loop to avoid lethal stack overflows. 2009-03-25 19:30:36 +00:00
MW
ff76102644 Changed IClientNetworkServer.AddScene method from void AddScene(Scene x) to void AddScene(IScene x). As there should be no need for the client view to have a reference to Scene. IScene should be all it needs. 2009-03-02 14:42:01 +00:00
lbsa71
801da4346a * optimized usings. 2009-02-12 09:53:12 +00:00
diva
b6e7e5ed42 Enforce estate bans on Teleports. 2009-02-11 21:07:41 +00:00
Sean Dague
8088802c21 From Alan Webb <awebb@linux.vnet.ibm.com>
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.
2009-02-09 21:47:55 +00:00
Dr Scofield
9b66108081 This changeset is the step 1 of 2 in refactoring
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!
2009-02-06 16:55:34 +00:00
Justin Clarke Casey
d2d273aebe * minor: move connection success log message so that it doesn't get printed again if a duplicate use circuit code packet comes in 2009-01-21 18:46:44 +00:00
Justin Clarke Casey
75ea84f3d2 * minor: Change around more debugging messages 2009-01-14 18:46:33 +00:00
Justin Clarke Casey
6ae1b80d20 * Do some log tweaking to better see incoming connection success (and failure) 2009-01-14 17:34:04 +00:00
Justin Clarke Casey
1e365df495 * minor: Stop friendship termination crashing the client thread if the friend to be terminated could not be found 2009-01-13 16:49:01 +00:00
Justin Clarke Casey
a31792ee5c * prune and regrade log messages relating to client login and logout 2009-01-06 21:39:55 +00:00
Justin Clarke Casey
72ff5322f5 * Replace manually zeroing with Array.Clear(). Thanks cmickeyb 2008-12-17 17:18:52 +00:00
Teravus Ovares
c9a5215d6d * Fixes Location == Location, and Location != Location 2008-11-28 20:37:21 +00:00
Teravus Ovares
414bf2aaf1 * The equals override of 'Location' is not working as expected. This caused sim restarts to fail because the test that searches for and shutsdown the UDP server listener for that region never found and shutdown the udp server. hence the error message, "only one listener on port".
* This is a high profile candidate for a unit test. (big)
2008-11-28 19:44:44 +00:00
Adam Frisby
434afaf717 * Added and removed debug information relating to client connections
* Minor client fixes
* Added the ability for a client to login without a UserProfile, allowing certain alternate clients to connect to the region.
2008-11-18 00:47:30 +00:00
Justin Clarke Casey
2bb4b45626 * Move test scene construction infrastructure methods to a separate class for future common use 2008-11-14 20:06:44 +00:00
Mike Mazur
32b9975468 If the proxy is on, we need to ignore the extra 6 bytes in the packet. 2008-11-11 03:41:28 +00:00
Johan Berntsson
22b70495ab The region proxy for the load balancer module works again. The incoming proxy messages were not properly decoded. 2008-11-10 09:50:05 +00:00
Teravus Ovares
f0bf3df024 * Fix half of the issue behind the long standing 'UseCircuitCode' packet spam from libOMV clients. AckPacket.Header.Sequence was 0. This caused LibOMV to ignore it.
* There's another patch over at http://jira.openmv.org/browse/LIBOMV-415 to fix the 'resend forever' issue.
2008-11-07 01:05:22 +00:00
Justin Clarke Casey
d31d02c373 * refactor: Split BeginRecieve() into BeginReceive() and BeginRobustReceive() 2008-11-06 20:10:39 +00:00
Justin Clarke Casey
5a852321e0 * Stop passing along epSender explicitly where we are really using the constantly reused ep sender field 2008-11-06 19:59:59 +00:00
Justin Clarke Casey
29691a3d36 * Test to ensure that the udp server stays active after receiving a SocketException on BeginReceive 2008-11-06 19:35:57 +00:00
Justin Clarke Casey
892e7bf9fb * Properly use the default value if the LindenUDP.ClientStack section exists by the client throttle setting does not
* Old behaviour was to throw an exception on startup
* Print out client stack setting temporarly for debug purposes
2008-11-05 20:42:37 +00:00
Justin Clarke Casey
fc36d7fdf2 * Set default client throttle multiplier to 2 (old value was effectively 8). See OpenSim.ini.example for details as to what this means
* 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
2008-11-05 19:23:59 +00:00
Justin Clarke Casey
4ff0c39153 * Expose a client_throttle_multiplier setting in OpenSim.ini. This multiplier is applied to all the client throttle settings received by the client
* 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.
2008-11-03 21:09:30 +00:00
Justin Clarke Casey
8dbd0118a8 * Pull client throttle multipler setting out of config source. Not an adjustable setting yet (and then only for debug purposes) 2008-11-03 19:02:44 +00:00
Justin Clarke Casey
6ea24799dd * minor: don't need to null check config source in clientstack settings since this is always non null 2008-11-03 18:49:25 +00:00
Justin Clarke Casey
8c71954e08 * Use nini to pass config information to the client stack, rather than the ClientStackUserSettings class
* This conforms better to other module usage
2008-11-03 18:33:35 +00:00
Justin Clarke Casey
b03e34dd2d * Fix http://opensimulator.org/mantis/view.php?id=2517
* Don't save attachments on saving oar, which stops them coming back as ghost prims
2008-11-01 21:28:52 +00:00
Justin Clarke Casey
465a931c05 * In the client stack, if the BeginReceive() throws an exception then do print this out to the log once
* This may help us detect if mysterious UDP disconnects are happening because of this.
* Shouldn't be any functional change but I would appreciate a buddy check from Teravus if he has time (as for all client stack changes)
2008-10-31 19:41:07 +00:00
Justin Clarke Casey
3340a579e7 * Stop creating a circuit if the client fails authentication (i.e. the region server wasn't told that it was coming)
* This moves authentication from the client thread (where failure was difficult to detect) to the particular thread handling that packet
* I've kept the authentication outside of the crucial clientCircuits lock (though any delay here is probably swamped by the other delays associated with login)
* Also added more to the unit test to ensure this doesn't regress
2008-10-24 21:22:54 +00:00
Justin Clarke Casey
91c2e53277 * Change AddClient test such that we now successfully authenticate
* The fact that the assert passed even when authentication failed reveals a bug in the code that will be corrected soonish
2008-10-24 19:40:45 +00:00
Justin Clarke Casey
369aa8f46b * minor: Remove unused public PacketServer variable.
* If this was important to you please reinsert and we can put it in a recognized interface.
2008-10-23 20:10:19 +00:00
Justin Clarke Casey
6101202403 * Revert to executing existing setup if an added circuit did not already exist
* Not sure why things still worked in the presence of this bug - possibly the problem is compensated for later on.  If you are having udp session problems this bug fix may help 
(though no guarantees).
2008-10-23 19:25:40 +00:00
Justin Clarke Casey
ee3c428040 * Refactor LLUDPServer slightly so that unit tests can pass in data synchronously. Shouldn't be any functional change 2008-10-23 17:16:13 +00:00
Justin Clarke Casey
923f9fb749 * minor: remove mono warnings 2008-10-19 18:45:41 +00:00
Teravus Ovares
ed8a20dd60 * Fixed UDP server (again)
* Guys, there's an endless loop there *ON PURPOSE*.  Please don't try to *fix* it.  We must continue to process the UDP stream buffer on clients that disconnected nastily until it ends or the UDP server accept thread will die a horrible death.
2008-10-19 17:02:39 +00:00
Teravus Ovares
6362760d30 * Null check before UseCircuitCode Check or the server crashes on packet loss! 2008-10-19 01:06:50 +00:00
Justin Clarke Casey
400314e884 * Finally, don't worry about doing containment checks on other dictionaries if we are adding a client
* Regarding an earlier change, I think it would be possible to eliminate the creation of new IPEndPoints on every end receive if we did the client circuit lookup before starting 
the next receive.  However, this would be a performance trade off and hence not worth trying without performance testing
2008-10-17 20:38:00 +00:00
Justin Clarke Casey
4ccac88cf6 * Don't worry about trying to populate the other dictionaries if a client's circuitcode is already found in the first one 2008-10-17 20:30:50 +00:00
Justin Clarke Casey
90d69a0523 * close two potential race conditions where a new asynchronous UDP recieve could overwrite an existing endpoint that had not yet been used by the previous thread
* in practice these race conditions were probably pretty rare
2008-10-17 20:14:31 +00:00
Justin Clarke Casey
84492fee01 * Temporarily resume creation of IPEndPoint on every call
* This widened what I think is an existing race condition where asynchronous recieves could potentially stomp on each other's end points (though this must occur very rarely, if at 
all, in reality)
2008-10-17 19:08:53 +00:00
Justin Clarke Casey
7891f821e2 * Instead of creating a new IPEndPoint on every udp packet receive, reuse the existing one
* This requires copying details into a new endpoint when it needs to be stored in client/circuit code hashes
2008-10-17 17:57:18 +00:00
Justin Clarke Casey
e4b8912296 * reverse part of a change that accidentally crept in with the last revision 2008-10-17 17:08:14 +00:00
Justin Clarke Casey
138bcf6fff * Apply a modified version of http://opensimulator.org/mantis/view.php?id=2290
* 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.
2008-10-17 16:44:05 +00:00
Justin Clarke Casey
82b7374ed2 * minor: get rid of pointless ipeSender 2008-10-16 19:50:12 +00:00
Adam Frisby
d7aedf343a * Small fix for when PacketPool is disabled to prevent it from crashing immedietly. 2008-10-12 01:09:58 +00:00