Justin Clark-Casey (justincc)
f690acbfb6
Fix a regression where we stopped removing avatars from collision event reporting on logout, rather than stopping clearing their collision events.
...
This occurred in b18c8c8
(Thu May 17 2012).
This was a cause of very occasional race conditions and likely memory leakage as clients came and went from the region.
2012-07-11 22:58:09 +01:00
Justin Clark-Casey (justincc)
f49c850269
If a link points to a non-existing item in FetchInventory caps, then don't try to add it to the return data rather than suffering an exception later on
2012-07-11 22:58:01 +01:00
Justin Clark-Casey (justincc)
70f85af75b
Add IScene.Name for code clarity to replace the RegionInfo.RegionName used in many, many log messages.
2012-07-11 22:57:53 +01:00
Justin Clark-Casey (justincc)
663b0cc681
Change AttachmentsModule.DetachSingleAttachmentToInv() to accept a SOG directly instead of an item ID to then shuffle through attachments, saving CPU busywork.
...
Almost all callers already had the sog to hand.
Still checking that it's really an attachment, but now by inspecting SOG.AttachedAvatar
2012-07-11 22:57:39 +01:00
Justin Clark-Casey (justincc)
733a8c9f89
Rather than iterating through all SOGs in the scene looking for the one that matches out fromItemID on detach, go through the agent's attachment sog list instead.
2012-07-11 22:57:31 +01:00
Justin Clark-Casey (justincc)
25109c8e4d
Remove code that tried to delete an attachment back to inventory if RezSingleAttachmentFromInventoryInternal() returned null.
...
null would only ever be returned if the item couldn't be located within inventory and this would happen immediately.
In this case, derezzing wouldn't work anyway since there is no item to derez.
2012-07-11 22:57:22 +01:00
Justin Clark-Casey (justincc)
51724128bf
If rest of first line after colon is blank then still warn about running in XEngine if engine specified does not exist.
...
This is to take account of situations where the user was intending to specify a script engine using colon using its default language.
This probably generates few false positive as scripts are less likely to end a first line colon with a comment for other purposes.
2012-07-11 22:57:12 +01:00
Justin Clark-Casey (justincc)
461831a65e
Avoid reporting false positives when a colon is in a comment in the first line of a script where the user was not trying to select a different script engine.
...
This works by only posting the "Selected engine unavailable" message if we're falling back on XEngine and the language is one handled by XEngine.
In cases where the language is not handled or not allowed, the user will still be notified by the later compiler error.
This avoids the overwhelming majority of false positives where the first line contains a : for other reasons (e.g. source control systems, vim settings, etc.)
Ultimately, I think it would be better to detect script language/engine with a mechanism that didn't just rely on : detection (e.g like #! in unix scripts).
2012-07-11 22:56:59 +01:00
Justin Clark-Casey (justincc)
c6fa09c3af
minor: reuse colon index calculation in XEngine.OnRezScript. The index if a colon is found on the first line will always be the same as for the whole script.
2012-07-11 22:56:45 +01:00
Justin Clark-Casey (justincc)
9ccf56eaae
Fix issue in InventoryArchiveTestCase where it didn't call down to OpenSimTestCase.SetUp()
2012-06-27 21:52:23 +01:00
Justin Clark-Casey (justincc)
ea9b0794e0
refactor: Move ScenePresence <-> AgentData attachments copying code into AttachmentsModule.
2012-06-27 21:52:16 +01:00
Justin Clark-Casey (justincc)
96191241be
Automatically disable log4net before each regression test so that logging is confined to a single test if it's turned on.
...
This involves making test classes inherit from a common OpenSimTestCase.
This will be applied to more classes as required.
2012-06-27 21:52:08 +01:00
Justin Clark-Casey (justincc)
779f0ede49
Fix output for help on some object region console commands
2012-06-27 21:51:54 +01:00
Justin Clark-Casey (justincc)
e511106d8d
Show region positions in "show regions" robust console command
2012-06-27 21:51:48 +01:00
Justin Clark-Casey (justincc)
37f22e2946
minor: correct GridService "show regions" cibsike cinnabd usage statement
2012-06-27 21:51:40 +01:00
Justin Clark-Casey (justincc)
b802906827
refactor: Remove unnecessary AttachmentModuleTests.m_userId in favour of local variables
2012-06-27 21:51:34 +01:00
Justin Clark-Casey (justincc)
c6fb5f0fe4
refactor: Use local attachment module variables instead of global m_attMod.
...
This also avoids confusion between tests where one sets up m_attMod and another accidentally uses it after failing to set one up itself.
2012-06-27 21:51:27 +01:00
Justin Clark-Casey (justincc)
8909e70fc3
refactor: make m_presence a local variable in all AttachmentsModuleTests since it doesn't need to be global and some tests set up more than one sp
2012-06-27 21:51:19 +01:00
Justin Clark-Casey (justincc)
78fcee1f4b
Add regression test to check that attachments in source region are deleting when an agent teleports to a neighbouring region
2012-06-27 21:51:12 +01:00
Justin Clark-Casey (justincc)
3106a0f25e
If crossing attachments into another region pre-fatpack, clone objects before changing properties to avoid hud display race condition with update threads.
...
This matches behaviour in fatpack crossing, where attachments are cloned before their properties are changed.
This only applies to crossings to simulators running code released before April 2011.
2012-06-27 21:51:03 +01:00
Justin Clark-Casey (justincc)
19c2f08a8b
Add much easier ConsoleDisplayTable AddColumn() and AddRow() methods.
...
Use these for new "show regions" command rather than old cumbersome stuff.
2012-06-27 21:50:52 +01:00
Justin Clark-Casey (justincc)
005ca12a99
Add "show regions" console command to ROBUST to show all regions currently registered.
...
Command is not added in standalone, which has its own version of "show regions" that can also show estate name
2012-06-27 21:50:44 +01:00
Justin Clark-Casey (justincc)
02fe1a676e
Add "show region at" command to grid service to get the details of a region at a specific location. "show region" command becomes "show region name" to disambiguate
...
This is the same format as used by "show object name", etc.
"deregister region" also becomes "deregister region id"
2012-06-27 21:50:38 +01:00
Justin Clark-Casey (justincc)
03fc8cf155
minor: update currently commented out log message at top of AvatarFactoryModule.SetAppearance() for future use
2012-06-27 21:50:30 +01:00
Justin Clark-Casey (justincc)
8dedd91961
When attachments are being saved and deleted for a closing root agent, delete first to avoid a hud race condition with update threads.
...
If delete doesn't occur first then the update thread can outrace the IsAttachment = false necessary to save attachments and send hud artifacts to other viewers.
2012-06-27 21:50:22 +01:00
Justin Clark-Casey (justincc)
0ac040d9ca
In AttachmentsModule.DetachSingleAttachmentToInvInternal(), remove attachment before changing properties for correct inventory serialization.
...
Serialization of attachments requires IsAttachment = false so that correct positions are serialized instead of avatar position.
However, doing this when a hud is still attached allows race conditions with update threads, resulting in hud artifacts on other viewers.
This change sets SOG.IsDeleted before serialization changes take place (IsDeleted itself is not a serialized property).
LLClientView then screens out any deleted SOGs before sending updates to viewers.
2012-06-27 21:50:09 +01:00
Justin Clark-Casey (justincc)
c5e5308120
Resolve various race conditions between accessing and removing external script URLs by more consistently locking on m_UrlMap
2012-06-27 21:45:07 +01:00
Justin Clark-Casey (justincc)
1cfaacb88b
Avoid a race condition where an incoming request to a script external URL can trigger an exception is the URL was being removed at the same time.
...
This involves three steps
1) Return gracefully in UrlModule.HttpRequestHandler() instead of throwing an exception when the url cannot be found in its index
2) Return true instead of false in HasEvents() if no matching request is found in the map. This call will only happen in the first place for raced requests.
3) Return a 404 in GetEvents() if the request is not in the index, rather than a blank 200 OK.
Many thanks to Tom Haines in http://opensimulator.org/mantis/view.php?id=6051 for doing some of the work on this.
2012-06-27 21:45:00 +01:00
Justin Clark-Casey (justincc)
689cafec63
Avoid race condition between m_PrimObjects iteration in XEngine.PostObjectEvent and places where the list is modified by extending the m_PrimObjects lock.
2012-06-27 21:44:53 +01:00
Justin Clark-Casey (justincc)
d4cd9e050b
If starting scripts on initial sim start, provide INFO level log feedback each time 50 scripts have been started.
...
This is to provide an indication of what's happening now that the default isn't to report every single script start.
Changes XEngine logging level in OpenSim.exe.config from WARN to INFO.
2012-06-27 21:44:45 +01:00
Justin Clark-Casey (justincc)
472785a5e8
Eliminate unnecessary extra call to TriggerEmptyScriptCompileQueue in XEngine.DoOnRezScriptQueue()
...
The later invocation of this function will happen on an empty compile queue.
2012-06-27 21:44:38 +01:00
Justin Clark-Casey (justincc)
da28fcd357
Stop flicking IsAttachment false and then true in AttachmentsModule.UpdateAttachmentPosition() in order to avoid a hud update race condition.
...
Previously, setting IsAttachment to false then true was necessary to serialize the updated attachment object information.
However, UpdateAttachmentPosition no longer does this update.
Whilst IsAttachment is set to false there is a race condition where the update thread can wrongly send hud object updates to clients that do not own the hud, resulting in screen artifacts.
2012-06-27 21:44:20 +01:00
Justin Clark-Casey (justincc)
1999338773
Fix bug where attachments would not retain position if just rotated and not moved.
...
This was because we were not setting AttachedPos in SOG.UpdateGroupPositionPR, unlike UpdateGroupPosition
2012-06-27 21:44:12 +01:00
Justin Clark-Casey (justincc)
95670d2086
refactor AttachmentsModule tests to use a common method for standard attachment item setup
2012-06-27 21:44:04 +01:00
Justin Clark-Casey (justincc)
af2c48449c
Add regression test for updating attachment position
2012-06-27 21:43:58 +01:00
Justin Clark-Casey (justincc)
ffc6110edf
Add item id, name, prim name and id to log message when state exists but loading fails.
...
Drop logging about memory limit exceeded to warn from error
2012-06-27 21:43:49 +01:00
Justin Clark-Casey (justincc)
1edd1f93c1
Retrigger build - last jenkins run was glitched
2012-06-27 21:41:49 +01:00
Justin Clark-Casey (justincc)
b6e42da21a
Add state file location to errors logged when there's some issue with retrieving state (e.g. exceeds memory limit)
2012-06-27 21:41:34 +01:00
Justin Clark-Casey (justincc)
2e0402433d
Use HasPrivateAttachmentPoint properties in SOG.DeleteGroupFromScene() instead of magic numbers
2012-06-27 21:41:24 +01:00
Justin Clark-Casey (justincc)
d19600e257
refactor: use SOG.HasPrivateAttachmentPoint in SOP.SendTerseUpdateToClient() instead of attachmentpoint magic numbers.
2012-06-27 21:41:15 +01:00
Justin Clark-Casey (justincc)
a6d97e6353
As with LLSDInventoryItem from commit 01a2b0b
, send type values in LLSDInventoryFolder for inventory CAPs as integers rather than strings.
...
Should also resolve some issues with exceptions being thrown in some inventory fetches.
2012-06-20 23:56:25 +01:00
Justin Clark-Casey (justincc)
8eb39eb3ac
Lower warn logging on not having friends/group module on permissions to debug.
...
It's a valid configuration not to have these modules, but I think it's still worth logging the fact that certain permissions won't work (always return true)
2012-06-20 23:55:58 +01:00
Justin Clark-Casey (justincc)
553ac6335d
minor: Lower flotsam asset cache warning about not having a FlotsamCache.ini to debug
...
It's perfectly okay not to have this section.
2012-06-20 23:55:51 +01:00
Justin Clark-Casey (justincc)
a0482bccc7
Remove STARTUP COMPLETE message from the startuplogo.txt file and into main logging
2012-06-20 23:55:36 +01:00
Justin Clark-Casey (justincc)
3291e256ba
Comment out the neighbour and land in connectors from info logging that they are starting up
2012-06-20 23:55:27 +01:00
Justin Clark-Casey (justincc)
fb7573f713
Comment out recently added log message detailing number of scripts started when compile queue empties for now
2012-06-20 23:55:16 +01:00
Justin Clark-Casey (justincc)
4684207d6e
Raise some IO associated Exception logging in XEngine to error level, in line with other similar cases.
...
Remove more unnecessary Close() calls - these are being triggered by the Dispose() called when exiting the using statement for these sdk io objects.
2012-06-20 23:55:09 +01:00
Justin Clark-Casey (justincc)
499b778391
Log how many scripts are candidates for starting and how many are actually started.
...
Adds DebugLevel infrastructure to XEngine though currently commented out and unused.
2012-06-20 23:54:16 +01:00
Justin Clark-Casey (justincc)
9779ceded5
If RegionReady is active, don't falsely say that logins are enabled in the main scene loop before RegionReady is signalled when initial script compilation finishes.
...
Also raises this logging level to Info from Debug since this information is of high importance. This matches the behaviour of the RegionReady module
2012-06-20 23:44:28 +01:00
Justin Clark-Casey (justincc)
512d0ac411
minor: If logging because mesh/sculpt data isn't present for an object, log object UUID rather than local id, since UUID doesn't potentially vary between simulator starts.
2012-06-20 23:44:16 +01:00
Justin Clark-Casey (justincc)
981c7d63a0
Like the assembly and text files, only write the c#-lsl linemap in XEngine.SetXMLState() if the trust binaries flag is set.
...
This doesn't affect other locations where the map is written, such as on script compilation.
2012-06-20 23:44:03 +01:00
Justin Clark-Casey (justincc)
7bd1601a3f
minor: Add a little more detail to IOException logging in XEngine.SetXMLState()
...
Also removes superflous Close() commands for statements taking place within using() constructs
Also adds some comment out debug log messages for future use.
2012-06-20 23:43:47 +01:00
Justin Clark-Casey (justincc)
3aef006e78
Change read config paramter from max_urls_per_simulator to max_external_urls_per_simulator, which is what it was meant to be
2012-06-20 23:33:54 +01:00
Justin Clark-Casey (justincc)
9a6aa528db
Fix bug introduced in commit c6e3752
(13 Jun 2012) where poll responses would always return OK even if some other status code had been set
2012-06-20 23:33:46 +01:00
Justin Clark-Casey (justincc)
02a163848c
Implement max_external_urls_per_simulator setting in [LL-Functions] to allow configuration of how many urls can be set up by llRequestURL()
...
Defaults remains as 100.
This setting is per simulator instead of per region due to how the url script module is structured.
2012-06-20 23:33:38 +01:00
Justin Clark-Casey (justincc)
b9f122be07
Add region name to UseCircuitCode log messages
2012-06-20 23:33:27 +01:00
Justin Clark-Casey (justincc)
e64ca361df
Put all debug console commands into a single Debug section rather than scattering them over other categories
2012-06-20 23:33:13 +01:00
Justin Clark-Casey (justincc)
8a11c4e7d4
Make the "debug http" command available for robust as well as the simulator. This allows one to see incoming requests as they happen.
...
This required making everything use the common MainServer class for registering and retrieving http servers, rather than duplicate structures.
2012-06-20 23:33:04 +01:00
Justin Clark-Casey (justincc)
584a076bec
Add main instance to internal MainServer.m_Servers list to simplify internal logic.
...
This does require the server to be added before it is set as the main Instance
2012-06-20 23:32:57 +01:00
Justin Clark-Casey (justincc)
88596d6097
minor: Tell user the current debug http level if "debug http" console command is executed without a level parameter
2012-06-20 23:32:44 +01:00
Justin Clark-Casey (justincc)
84d97b3bc0
When setting debug http level, do this for all known http servers, not just the main instance.
2012-06-20 23:32:38 +01:00
Justin Clark-Casey (justincc)
2b4e97eeaf
Make XMLRPCModule use an existing HTTP server if one already exists on the desired port.
2012-06-20 23:32:30 +01:00
Justin Clark-Casey (justincc)
a544280ef2
Get rid of some unnecessary null checks in RegionApplicationBase.StartupSpecific() - a constructor can never return null.
...
Also adds some method doc to MainServer
2012-06-20 23:32:23 +01:00
Justin Clark-Casey (justincc)
3a0f9836f3
minor: Extend 'debug http' usage statement to 0..3 from 0..2
2012-06-20 23:32:12 +01:00
Justin Clark-Casey (justincc)
4bfac5688d
Shuffle "debug http" levels so that 1 and 2 now cause different levels of warn to be logged if we receive invalid xml for xmlrpc.
2012-06-20 23:32:06 +01:00
Justin Clark-Casey (justincc)
0fb93042c6
Fix a regression in BaseHttpServer.HandleXmlRpcRequests() from recent c6e3752
...
Accidentally make responseString null by default instead of String.Empty.
It needs to be something in case the XmlRpcRequest deserialize throws an exception due to bad xml (a failure which we silently swallow!)
2012-06-20 23:31:50 +01:00
Melanie
a3586a7c4b
Fix not sending TransferInfo when an asset is not found. This clogs
...
up the sound pipeline in the viewer.
2012-06-20 23:31:02 +01:00
Justin Clark-Casey (justincc)
d4ff56710b
Don't include time to transmit response back to requester when assessing slow handling of requests.
...
This is to avoid logging a 'slow' request when the source of delay is the viewer in processing a response.
This is not something we can do much about on the server end - it's server-side delay that we're interested in.
To ensure consistency, this commit also had to refactor and simplify inbound non-poll network request handling, though there should be no functional change.
IOSHttpResponse no longer exposes the Send() method, only classes in OpenSim.Framework.Servers.HttpServer should be doing this.
Only the GetTextureHandler was sending its own response. Now it leaves this to BaseHttpServer, like all other core handlers.
2012-06-20 23:29:49 +01:00
Justin Clark-Casey (justincc)
6219c137e1
Fix very recent regression in 917d753
where I put the ++updatesThisCall outside the batching part of ProcessEntityUpdates()
...
This stopped any batching happening and since this method is called periodically updates were sent very slowly
2012-06-14 04:00:32 +01:00
Justin Clark-Casey (justincc)
da3877a77d
If we're going to discard a terse update block because it's now someone else's hud, then don't still add it to the list of blocks for the update message.
2012-06-14 04:00:22 +01:00
Justin Clark-Casey (justincc)
10ed7e3bbc
correct wrong incomplete comment from previous commit 3c3ea19
in AttachmentsModule
2012-06-14 04:00:04 +01:00
Justin Clark-Casey (justincc)
f248f8bf31
Fix a bug where scene objects attached as HUDs through scripts would not disappear for other avatars.
...
We do this by sending a kill message for that object to all other avatars apart from the one that has the hud.
2012-06-14 03:59:56 +01:00
Justin Clark-Casey (justincc)
6f2031001b
Fix a race condition where an object update for a hud could be sent to non-owner avatars if the hud was attached directly from within the region.
...
If this happens, then the non-owners would see unremovable huds that they did not own until relog, and sometimes even beyond that.
This was due to a race between the entity update and the attachment code when moving an object from within scene to a hud.
2012-06-14 03:59:46 +01:00
Justin Clark-Casey (justincc)
1c5ad8e9ab
Add SOG.HasPrivateAttachmentPoint to tell if a SOG has a private attachment point. HUDs attachment points are private.
...
Change SOP.SendFullUpdateToClient() and SoundModule.PlayAttachedSound() to use this rather than different magic number formulations.
This also corrects a bug in PlayAttachedSound() where the code assumed that all attachment points over 30 were HUDs.
It appears this is no longer true with Neck and Root (Avatar Center)
2012-06-14 03:59:39 +01:00
Justin Clark-Casey (justincc)
d8d8b8fc9b
minor: remove unnecessary IsAttachment = false setting for new object in UploadObjectAssetModule, property always starts as false
2012-06-14 03:59:09 +01:00
Justin Clark-Casey (justincc)
719efdaf1f
minor: refactor part of LLClientView.ProcessEntityUpdates() to remove duplicate code
2012-06-14 03:58:54 +01:00
Justin Clark-Casey (justincc)
6a8e3907ca
Remove long obsolete and unused IClientAPI.KillEndDone()
2012-06-14 03:18:23 +01:00
Justin Clark-Casey (justincc)
5a1b8fc6f7
Add ObjectUpdate as one of the packets that can be screened out when setting debug packet level
2012-06-14 03:18:15 +01:00
Justin Clark-Casey (justincc)
00ac962db7
In the osGetGrid functions, if the [GridInfo] section does not exist then return "Configuration Error", as already happens if there is no GridInfoURI
2012-06-14 03:18:08 +01:00
Justin Clark-Casey (justincc)
cb518ad68c
Add "deregister region" by uuid command to grid service to allow manual deregistration of simulators.
...
Useful if a simulator has crashed without removing its regions and those regions have been reconfigured differently
2012-06-14 03:18:00 +01:00
Justin Clark-Casey (justincc)
4859bc8c49
Remove accidental timeout left in during earlier debugging. Has been in since two commits ago ( b099f26
)
2012-06-14 03:13:55 +01:00
Justin Clark-Casey (justincc)
196e014782
OnConnectionClosed listeners, retrieve data from IClientAPI.SceneAgent rather than scanning all scene for the presence with the right id
...
Stop checking IsLoggingOut on these listeners, if called with a root agent then we always want to perform these actions.
This covers cases where the client is closed due to manual kick, simulator shutdown, etc.
2012-06-14 03:13:37 +01:00
Justin Clark-Casey (justincc)
c6ffaaa959
Set IClientAPI.IsActive = false early on client removal due to ack timeout rather than using IsLoggingOut flag.
...
IsActive is more appropriate since unack timeout is not due to voluntary logout.
This is in line with operations such as manual kick that do not set the IsLoggingOut flag.
It's also slightly better race-wise since it reduces the chance of this operation clashing with another reason for client deactivation (e.g. manual kick).
2012-06-14 03:08:08 +01:00
Justin Clark-Casey (justincc)
c3104f4bd2
If the simulator closes a root agent due to ack timeout, then send the client a kick message with that reason, in case it is somehow still listening.
2012-06-14 03:07:32 +01:00
Justin Clark-Casey (justincc)
d8c40ca462
In PresenceDetector.OnConnectionClose(), use the IsChildAgent check already available on IClientAPI.SceneAgent rather than retrieving it again by scanning all scenes.
2012-06-14 03:07:25 +01:00
Justin Clark-Casey (justincc)
48f47bb4c7
Comment out the scene presence sitting debug log messages for now
2012-06-14 03:04:09 +01:00
Justin Clark-Casey (justincc)
a57b78b44b
Scale down per frame MS stats to match scaled simulator FPS stat.
...
This makes frame time stats properly tally with fps, which saves confusion and makes it easier to interpret numbers.
In some ways this is not so artifical - physics FPS runs at the higher rate.
2012-06-14 03:03:26 +01:00
Justin Clark-Casey (justincc)
280d005d55
Start sending spare frame time MS viewer stat. Make frame time correctly display total frame time, not just non-spare time.
...
This makes it easier to see when components of frame time exceed normal permitted frame time.
Currently reflect scene frame times.
2012-06-14 03:03:01 +01:00
Justin Clark-Casey (justincc)
61e7d4a0e2
Properly show per frame millisecond statistics per frame, not as amount of time taken per second.
...
This is to make these statistics actually match their names (and also be more accurate as number of frames can vary under heavy load)
Currently using scene frames (11.23 every second) instead of physics frames (56.18 per second)
2012-06-14 02:51:43 +01:00
Justin Clark-Casey (justincc)
3e75083d2d
Add last frame time monitor to MonitorModule now that this value is useful
2012-06-14 02:51:17 +01:00
Justin Clark-Casey (justincc)
4968191c1e
Fix regression in 5f4f9f0
(Fri Jun 8 2012) which stopped "show stats" and json stats from working
2012-06-14 02:50:36 +01:00
Justin Clark-Casey (justincc)
8889309324
Stop sending a DisableSimulator packet in LLClientView.Close(), which is a duplicate for child agents and unnecessary for root agents.
...
Close() already calls Scene.RemoveClient() which sends the right eq or udp DisableSimulator message to child agents.
2012-06-14 02:50:28 +01:00
Justin Clark-Casey (justincc)
27a7ba3e6a
Instead of retrieving the known client again in LLUDPServer.RemoveClient(), check the IsLoggingOut flag instead.
...
This is slightly better thread-race wise
2012-06-14 02:50:17 +01:00
Justin Clark-Casey (justincc)
2d16d14ef1
If logging a client out due to ack timeout, do this asynchronously rather than synchronously on the outgoing packet loop.
...
This is the same async behaviour as normal logouts.
This is necessary because the event queue will sleep the thread for 5 seconds on an ack timeout logout as the client isn't around to pick up the final event queue messages.
2012-06-14 02:50:09 +01:00
Justin Clark-Casey (justincc)
f2f8dcd65c
Add regression test for client logout due to ack timeout.
2012-06-14 02:50:02 +01:00
Justin Clark-Casey (justincc)
332f8b6623
Remove null checks at top of LLUDPServer.ProcessInPacket(). Neither packet nor client are ever null.
2012-06-14 02:49:55 +01:00
Justin Clark-Casey (justincc)
4eda679e12
Store already retrieve IClientAPI in IncomingPacket structure for later use rather than doing another retrieve on dequeue.
...
Instead of checking whether the client still exists by trying to retrieve again from the client manager, this patch gets it back from IncomingPacket and checks the IClientAPI.IsActive state.
2012-06-14 02:49:39 +01:00
Justin Clark-Casey (justincc)
498154af80
Don't make duplicate call to ScenePresence.Close() separately in ETM.DoTeleport() if an agent needs closing.
...
This is always done as part of Scene.RemoveClient()
Also refactors try/catching in Scene.RemoveClient() to log NREs instead of silently discarding, since these are useful symptoms of problems.
2012-06-14 02:49:31 +01:00
Justin Clark-Casey (justincc)
ba0ebe6d75
Go back to calling IncomingCloseAgent() in the "kick user" command for consistency instead of IClientAPI.Close() directly.
...
This no longer double counts child agent removals
2012-06-14 02:49:22 +01:00
Justin Clark-Casey (justincc)
28f93512bc
Remove duplicate update of user count in Scene.IncomingCloseAgent()
...
This is already done in Scene.RemoveClient() which IncomingCloseAgent() always ends up calling.
2012-06-14 02:49:14 +01:00