Commit Graph

20476 Commits (63ccc3dbf595d56fb9f08ee9575b81f3b39ca290)

Author SHA1 Message Date
teravus 1df58d04b1 * Move the BasicDOSProtector.cs to OpenSim.Framework (all useful classes belong there.....)
* Add an IsBlocked(string Key) method so it can be used more generically.   (think..   if we want to rate limit login failures, we could have a call in the Login Service to IsBlocked(uuid.ToString()) and ignore the connection if it returns true, if IsBlocked returns false, we could run the login information and if the login fails we could run the Process method to count the login failures.
2013-10-07 23:48:24 -05:00
teravus 75fdd6054d * Refactor
* Break out common BasicDOSProtector code into separate class.
2013-10-07 23:19:50 -05:00
teravus f76cc6036e * Added a Basic DOS protection container/base object for the most common HTTP Server handlers. XMLRPC Handler, GenericHttpHandler and <Various>StreamHandler
* Applied the XmlRpcBasicDOSProtector.cs to the login service as both an example, and good practice.
* Applied the BaseStreamHandlerBasicDOSProtector.cs to the friends service as an example of the DOS Protector on StreamHandlers
* Added CircularBuffer, used for CPU and Memory friendly rate monitoring.
* DosProtector has 2 states, 1. Just Check for blocked users and check general velocity, 2. Track velocity per user,     It only jumps to 2 if it's getting a lot of requests, and state 1 is about as resource friendly as if it wasn't even there.
2013-10-07 21:35:55 -05:00
teravus 31246ecd04 * Added a unique and interesting WebSocket grid login processor by hijacking the LLSD login code. This sends the data through the normal login channels and spits out a JSON object back that mimics the login response. Feel free to comment on the best way to set this up as a config option. 2013-10-04 20:53:01 -05:00
teravus 85593d8d25 * Add an initial complete frame timeout to the WebSocket processor to make it easier to write WebSocket service code that is resistant to Denial of Service attacks. 2013-10-04 20:37:59 -05:00
Diva Canto 083eb7679b Added SimulatorFeatures/OpenSimExtras: say-range, whisper-range, shout-range, at the request of Singularity dev Liru-Dargon 2013-10-04 17:32:17 -07:00
Justin Clark-Casey (justincc) 44580e2233 Update an AssmblyVersion property that I missed to 0.8.0 2013-10-04 23:36:28 +01:00
Justin Clark-Casey (justincc) 42bdf44658 Bump OPenSimulator version and assembly versions up to 0.8.0 Dev 2013-10-04 23:33:47 +01:00
Justin Clark-Casey (justincc) 970249a3c7 Add OnChatToNPC and OnInstantMessageToNPC messages to NPCAvatar to allow region modules to directly subscribe to chat and messages received by NPCs
Currently still requires INPC from NPCModule.GetNPC() to be cast to an NPCAvatar.
2013-10-04 19:40:43 +01:00
Justin Clark-Casey (justincc) 8996ac1a9c minor: Disable logging left active on regression test TestSameSimulatorIsolatedRegionsV2() 2013-09-27 22:33:42 +01:00
Justin Clark-Casey (justincc) 2cd95fac73 refactor: Rename Scene.AddNewClient() to AddNewAgent() to make it obvious in the code that this is symmetric with CloseAgent() 2013-09-27 22:27:39 +01:00
Justin Clark-Casey (justincc) b16bc7b01c refactor: rename Scene.IncomingCloseAgent() to CloseAgent() in order to make it clear that all non-clientstack callers should be using this rather than RemoveClient() in order to step through the ScenePresence state machine properly.
Adds IScene.CloseAgent() to replace RemoveClient()
2013-09-27 19:14:21 +01:00
dahlia b704de9bf8 minor code formatting for the sake of consistency and readability 2013-09-26 16:27:11 -07:00
Justin Clark-Casey (justincc) 585d0800dd minor: Make OpenSimDefaults.ini consistent (spacing and tabs to spaces) 2013-09-27 00:14:40 +01:00
Justin Clark-Casey (justincc) 70b51f12cd minor: Clean up tabbing and spacing issues in OpenSim.ini.example 2013-09-27 00:01:18 +01:00
Justin Clark-Casey (justincc) d6d82dbd3c minor: correct attachment spelling mistake in log message in HGEntityTransferModule.OnIncomingSceneObject() 2013-09-26 20:13:29 +01:00
Justin Clark-Casey (justincc) e24edada24 minor: Comment out windlight log message about sending scene data for now. 2013-09-26 00:39:32 +01:00
Justin Clark-Casey (justincc) 253f8de8cd minor: Add scene name to baked textures in cache log message 2013-09-26 00:33:50 +01:00
Justin Clark-Casey (justincc) babfbe8d6d minor: log MaxOutgoingTransferVersion at EntityTransferModule startup 2013-09-26 00:31:33 +01:00
Justin Clark-Casey (justincc) 4664090b34 minor: correct spelling of Initialized in LSC connector version message 2013-09-25 22:59:57 +01:00
Justin Clark-Casey (justincc) b22c92368f Move adding UUID.Zero -> Unknown User binding to UMM.Init() so that it's also called by HGUserManagementModule 2013-09-25 21:53:38 +01:00
Justin Clark-Casey (justincc) 32ddfc2740 Reinsert client.SceneAgent checks into LLUDPServer.HandleCompleteMovementIntoRegion() to fix race condition regression in commit 7dbc93c (Wed Sep 18 21:41:51 2013 +0100)
This check is necessary to close a race condition where the CompleteAgentMovement processing could proceed when the UseCircuitCode thread had added the client to the client manager but before the ScenePresence had registered to process the CompleteAgentMovement message.
This is most probably why the message appeared to get lost on a proportion of entity transfers.
A better long term solution may be to set the IClientAPI.SceneAgent property before the client is added to the manager.
2013-09-25 18:45:56 +01:00
Justin Clark-Casey (justincc) 732554be04 Reinsert 200ms sleep accidentally removed in commit 7dbc93c (Wed Sep 18 21:41:51 2013 +0100) 2013-09-25 18:29:14 +01:00
Justin Clark-Casey (justincc) f384a6291e Instead of swallowing any socket begin/end receive exceptions, log them for debugging purposes.
This may reveal why on some teleports with current code, the UseCircuitCode message gets through but CompleteMovement disappears into the ether.
2013-09-25 00:02:17 +01:00
teravus 8de5c29e2c * The last two are the the patch that Aleric wanted pulled from his repo. * Added GregC to CONTRIBUTORS.txt, Aleric was already in there. * There's some controversy, Some people have suggested that this could be stored in dynamic attributes instead of the database.. Melanie was wanting to pull from the avination repo but was asked to wait on committing anything new until the release. The cherry-pick doesn't answer those questions. 2013-09-22 21:34:55 -05:00
Aleric Inglewood 7889e7757a Don't use 'Indented' formatting for RpcXml responses.
(cherry picked from commit 93abcde69043b175071e0bb752538d9730433f1d)
2013-09-22 21:10:01 -05:00
Aleric Inglewood 2dc92e7de1 Preserve attachment point & position when attachment is rezzed in world
Patch taken from
http://opensimulator.org/mantis/view.php?id=4905
originally by Greg C.

Fixed to apply to r/23314 commit
ba9daf849e
(cherry picked from commit 4ff9fbca441110cc2b93edc7286e0e9339e61cbe)
2013-09-22 21:10:01 -05:00
Justin Clark-Casey (justincc) a37c59b43e minor: Recomment out log message uncommented in previous cbdfe969 2013-09-21 00:40:23 +01:00
Oren Hurvitz cbdfe96905 When giving items between avatars in different simulators, only add the item to the receiving avatar's inventory once.
When a user gives an item, the user's client sends an InventoryOffered IM message to its simulator. This adds the item to the receiver's inventory. If the receiver isn't in the same simulator then XMLRPC is used to forward the IM to the correct simulator. The bug was that the receiving simulator handled the message by calling OnInstantMessage() again, which added a second copy of the item to the inventory. Instead, the receiving simulator should only notify the avatar that the item was offered.
2013-09-21 00:32:56 +01:00
Justin Clark-Casey (justincc) 4c0ec86176 minor: Add prefix to log message in LureModule 2013-09-21 00:14:57 +01:00
Justin Clark-Casey (justincc) e2b3b7a2ae minor: Correct minor spelling mistake Reseting -> Resetting in HG Map module log message 2013-09-20 23:42:55 +01:00
Justin Clark-Casey (justincc) 8502517d80 Make UUID.Zero resolve to "Unknown User" in user cache.
This is to avoid massive numbers of 'no user found' logs when user IDs are missing for some reason.
UUID.Zero should not be used for any user ID.
2013-09-20 23:07:24 +01:00
Justin Clark-Casey (justincc) c01db5fbdd Lock around read/write of ScenePresence.m_originRegionID to make sure that all threads are seeing the latest value and not a cached one.
There is a possibilty that some V2 teleport failures are due to the viewer triggered CompleteMovement thread not seeing the change of m_originRegionID by the UpdateAgent thread.
2013-09-20 22:41:53 +01:00
Justin Clark-Casey (justincc) c6dea6ee78 Change some message log levels in Scene.IncomingUpdateChildAgent() for debugging purposes 2013-09-20 20:19:44 +01:00
Robert Adams 35a6361b24 BulletSim: reduce avatar walking stopped threshold.
Add parameter for setting the walking stopped threshold.

This fixes the slight jump when an avatar stops walking.
2013-09-20 09:58:45 -07:00
Robert Adams 07d7a5fd76 BulletSim: zero velocity when avatar not moving.
This fixes a movement jitter that happens when an avatar is standing on a
tilted surface.
2013-09-20 09:58:25 -07:00
Justin Clark-Casey (justincc) c06a9ffe5c Make new regions PG by default instead of Mature.
This makes scripted object sounds and a few other things play by default instead of having to switch the viewer to adult
This reduces the support burden
2013-09-20 00:04:33 +01:00
Oren Hurvitz f1267730ef UUID Gatherer: find assets used in Light Projection, Particle Systems, and Collision Sounds. 2013-09-19 23:01:06 +01:00
Justin Clark-Casey (justincc) 979b17165b For debug purposes, allow simulators to force use of earlier SIMULATION/0.1 teleport protocol even if SIMULATION/0.2 is available.
This is specified in the MaxOutgoingTransferVersion attribute of [EntityTransfer] in OpenSim.ini, see OpenSimDefaults.ini for more details.
Default remains "SIMULATION/0.2"
Primarily for http://opensimulator.org/mantis/view.php?id=6755
2013-09-19 22:45:50 +01:00
Justin Clark-Casey (justincc) b6f10780c2 minor: Make SP.MakeRootAgent() private - no external code has any business calling this method 2013-09-19 21:44:30 +01:00
Justin Clark-Casey (justincc) 03b2b5b77b minor: Make log message at top of ScenePresence.CompleteMovement info level and comment out later log message in ScenePresence.MakeRootAgent()
Need an info message since this is currently important in detecting teleport issue when not at debug log level.
CompleteMovement message occurs before MakeRootAgent() one did
2013-09-19 20:59:27 +01:00
Justin Clark-Casey (justincc) 6bdef1f70b minor: Stop debug logging whenever an npc is moved, other npc log related formatting cleanups 2013-09-19 20:49:55 +01:00
Justin Clark-Casey (justincc) 3a9a8d2113 Revert "Also check user authorization if looking to upgrade from a child to a root agent."
This reverts commit c7ded0618c.
This proves not to be necessary - the necessary checks are already being done via QueryAccess() before cross or teleport
2013-09-19 20:26:26 +01:00
Justin Clark-Casey (justincc) 83c113896e Create regression TestCrossOnSameSimulatorNoRootDestPerm() to check that avatars are not allowed to cross into a neighbour where they are not authorized, even if a child agent was allowed. 2013-09-19 20:26:08 +01:00
Justin Clark-Casey (justincc) 997700c4aa minor: Make config-include .ini files more consistent
Chiefly tabs to spaces.
No actual setting changes
2013-09-18 23:49:27 +01:00
Justin Clark-Casey (justincc) ac0a527976 Add [SimulationService] section to GridHypergrid.ini and StandaloneHypergrid.ini
This was already in Grid.ini and Standalone.ini
Default settings are same as previously, just introduce a debug ConnectorProtocolVersion parameter
2013-09-18 23:27:37 +01:00
Justin Clark-Casey (justincc) 8999f06025 minor: correct method name in comment 2013-09-18 23:13:31 +01:00
Justin Clark-Casey (justincc) ddcbd4bb7d refactor: rename *ChildAgentDataUpdate() methods to *UpdateChildAgent()
verb-noun is consistent with other similar methods
2013-09-18 23:09:38 +01:00
Justin Clark-Casey (justincc) 3ce46adb2a minor: Make log message when Scene.IncomingChildAgentDateUpdate() more explicit that there is a problem if it still finds the agent to be a child if the sender wanted to wait till it became root
Add some comments about the mssage sequence, though much more data is at
http://opensimulator.org/wiki/Teleports
2013-09-18 22:56:00 +01:00
Justin Clark-Casey (justincc) f4d82a56f4 Double the time spent waiting for a UseCircuitCode packet in LLUDPServer.HandleCompleteMovementIntoRegion()
This is to deal with one aspect of http://opensimulator.org/mantis/view.php?id=6755
With the V2 teleport arrangements, viewers appear to send the single UseCircuitCode and CompleteAgentMovement packets immediately after each other
Possibly, on occasion a poor network might drop the initial UseCircuitCode packet and by the time it retries, the CompleteAgementMovement has timed out and the teleport fails.
There's no apparant harm in doubling the wait time (most times only one wait will be performed) so trying this.
2013-09-18 22:09:46 +01:00