Commit Graph

172 Commits (26569a7cd02a03ea41e8febc69e659b670a9e031)

Author SHA1 Message Date
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
Adam Frisby dcdfde834f LLUDP Client View
* Experimenting with the PacketPool mechanism.
* It's still disabled in the code, however there's now a flag to enable it.
* Converted to use Generic Collections vs Hashtables, also now uses a list of 'OK to pool' packets, starting with the high volume PacketAck packet.
2008-10-12 00:56:54 +00:00
Justin Clarke Casey 997eec671a * minor: get rid of an unecessary casting and logic check 2008-10-09 20:02:40 +00:00
Justin Clarke Casey 8ad0249969 * refactor: separate process of extracting packet from received data from actually processing that packet 2008-10-09 18:09:25 +00:00
Justin Clarke Casey 743e336bf3 * Put in some infrastructure to allow tweaking of packet queue throttle values for the total throttle (the one that throttles all packet output)
* Not complete yet
2008-10-03 18:06:45 +00:00
Teravus Ovares 8de395d379 * EventQueueGet is now working.
* Switched it on by default
* Updated OpenSim.ini.example to reflect this
* Caught a UDP Server issue that occurs when the network pipe is saturated
* Still experimental :D
2008-10-03 09:53:49 +00:00
Justin Clarke Casey 4d32cd34e8 * refactor: rename interface to put standard I prefix in front 2008-10-01 20:30:30 +00:00
Adam Frisby e946b40fdd * Minor fixes and cleanups around code being used for Rex Module work. 2008-09-14 01:49:47 +00:00
Jeff Ames fae34bb10c Update svn properties, formatting cleanup. 2008-09-09 01:26:48 +00:00
Melanie Thielker 490ac0be00 Implement proper persistence of the following prim properties:
Floating text, Rotation, Texture animation, Particle System
This will make "Eye Candy" scripts work without modification in
XEngine. The use of the CHANGED_REGION_RESTART hack is no longer
needed. Implemented in MySQL only, hovertext also in SQLite.
2008-09-08 02:40:20 +00:00
Justin Clarke Casey 78f831ef52 * minor: Clean up of logging messages to make following the client login process easier
* documentation
2008-09-07 03:22:33 +00:00
Justin Clarke Casey ea8c18f63d * minor: just minor doc and tidy up 2008-09-07 00:47:08 +00:00
Melanie Thielker 9e545c9984 Mantis #2133
Thank you, Xugu Madison and ChrisDown, for a patch that
fixes linux filename extensions from .Xml back to .xml
2008-09-06 14:58:23 +00:00
Teravus Ovares 7d89e12293 * This is the fabled LibOMV update with all of the libOMV types from JHurliman
* 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.
2008-09-06 07:52:41 +00:00
Melanie Thielker a7e2d14454 Rolling back #6139 because there is no consensus on it's application.
Reverted pending further discussion.
2008-09-06 04:35:33 +00:00
Melanie Thielker b6b1e9e214 Mantis #624
Thank you, openlifegrid, for a patch to move new user connections to
thread pool threads.
Reworked by me to fit current trunk.
I believe that that patch may be beneficial in reducing the cases
in which regions become unresponsive and will no longer accept
new logins.
2008-09-06 04:21:36 +00:00
Justin Clarke Casey c713ec8223 * Committed patch in mantis 623
* Unpatched code certainly looks bizarre - attempts to add a new client if we encountered a failure in processing a packet.  No apparant ill effects on a sniff test.
* Thanks openlifegrid
2008-08-30 21:33:55 +00:00
Jeff Ames 6ef9d4da90 Formatting cleanup. 2008-08-18 00:39:10 +00:00
lbsa71 d4b8e06d55 * Added a little more log info in LLUDPServer 2008-08-09 18:37:20 +00:00
lbsa71 6849f45660 * Shielded against various forms of Malformed data crashes - if there is an error in packet creation, we just log and ignore it
* If there's a Socket.AlreadyInProgress, just silently ignore this one
* Tried to refactor the Reset and BeginRecieve logic into something a little more readable, little less duplicated
2008-08-09 05:26:33 +00:00
Melanie Thielker eaff580abe Patch #9160
Refactor proxy encode/decode methods out of the PacketPool into
their own class.
2008-08-08 11:04:24 +00:00
Justin Clarke Casey 5350cec0b3 * minor: log message twiddling 2008-08-01 20:05:26 +00:00
Jeff Ames 80d8e2889e Update svn properties. Formatting cleanup. Remove a compiler warning. 2008-07-23 13:24:25 +00:00
Melanie Thielker e1c6563174 Guard against wrong packet types being passed into AddNewClient.
Actually, the exception handler seems to be a valid execution
path here, this needs some love.
2008-07-23 01:16:01 +00:00
Justin Clarke Casey da68f18a6b * Guard against a null point passed to RemoveClientCircuit (odd that this happens at all)
* Patch from Kurt Taylor (IBM) in http://opensimulator.org/mantis/view.php?id=1720
* Thanks Kurt!
2008-07-11 17:58:26 +00:00
Dr Scofield 748f72326d last round of warning squashing. calling it a day now. 2008-06-27 23:03:39 +00:00
Johan Berntsson 20e4036853 Implemented plugin support for ClientStack, with LindenUDP as the default plugin. This makes it easy for developers to experiment with alternative communication protocols 2008-06-20 01:35:54 +00:00
Jeff Ames fbd37c420f Minor formatting cleanup. 2008-06-06 01:19:15 +00:00
Sean Dague 0cacdd370c change clientCircuits_reverse to a synchronized hash table. This
removes a lock on every SendPacketTo call, which was shown to have 
good performance benefits by the IBM China Research Lab.
2008-06-04 17:43:07 +00:00
Sean Dague afd59e862e temporarily disable the last bit of code as it prevents startup on
mono.  Need to sort that out with DJ shortly.
2008-06-03 13:58:54 +00:00
Sean Dague e713a3c62a From: Dong Jun Lan <landj@cn.ibm.com>
Set udp flags correctly to prevent "Socket forcibly closed by host"
errors.
2008-06-03 13:49:58 +00:00
Justin Clarke Casey 5c8a93c426 * Extract and boil down necessary texture UUIDs for an archive of the scene prims
* no user functionality yet
2008-05-26 01:50:40 +00:00
Jeff Ames 65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Jeff Ames c995d60d37 Formatting cleanup. 2008-05-14 05:11:23 +00:00
Sean Dague 1edb7992f1 fixed the dos line endings 2008-05-02 19:21:33 +00:00
Adam Frisby 4dc75e4b76 * More clientstack abstractions - We now only have a single constructor call to UDPServer. Going to reduce this with an abstracted constructor in a bit. 2008-05-02 18:18:43 +00:00
Adam Frisby 29b8c84cea * Commit 2/3 - Please dont attempt to update to this revision until all 3 are in. 2008-05-02 16:41:08 +00:00