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.
The attached patch (against r6075) fixes it for grid-mode. If the
home-region isn't available, the stored regionHandle will be used
to compute the region-coordinates of the home. This will be wrong
if the home-region has moved, of course, but without the region
being online we can't request the RegionInfo of it for finding out.
Doing that (before the patch) and accessing the (null) RegionInfo
led to a NullReferenceException, which prevented logging in to the
last location.
Types extracted from a LSL_Types.list have to be down-cast initially
to the exact type of value type object that the Object actually is.
This would make for very cumbersome, ugly code when extracting list
parameter items in ll functions where a few implicit conversions
should be applied such as key -> LSLString and LSLInteger -> LSLFloat
(but not LSLFloat -> LSLInteger). This patch adds a set of GetXXXItem
member functions to the LLS_Type.list class, where XXX is the name
of the LSL_Type to be extracted: LSLFLoat, LSLInteger etc. All take
a single, int parameter that is the item number to be extracted.
The option to enable the REST Asset and Inventory plugin is missing
from OpenSim.ini.example. This patch adds the required items without
enabling the plugins.
If the parcel pointed to by the landmark has nothing in the
Description field (of the General tab in About Land...), a
NullReferenceException is thrown and the client is logged out.
I added a check to the calls to Helpers.StringToField() in OpenSim.Region.ClientStack.LindenUDP.SendParcelInfo to avoid
this issue.
Eliminate gretuitious KillObject packets. KillObject is sent to the
viewer for the root part only.
Also prevents the full update on deselect that makes a deleted object
reappear and stay visible until the background deleter got around to it.
We still send 2 KillObject packets for the root prim, that could be
avoided only at a cost in reliability. One packet seems an acceptable
price to pay for consistency.
The attached patch fixes connectivety checking of root- and
child-agents. If an agent's client isn't sending any packets
for some time (not even to StartPingCheck packets), we assume
that we lost connection and try to log them out.
Due to the many problems with not cleaned up child-agents, I thought it
might make sense to be able to see them on the console. 'show users' on
the region-server's console now outputs root- and child-agents (with
"root" or "child" column)