RegionHandshake IS critical llupd protocol not to be done by odd modules

This commit is contained in:
UbitUmarov
2019-03-20 15:09:53 +00:00
parent 81ff118378
commit d6b3413c63
7 changed files with 15 additions and 16 deletions

View File

@@ -890,7 +890,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
0xff, 0xff, 0, 1, 148 // ID 148 (low frequency bigendian) zero encoded
};
public void SendRegionHandshake(RegionInfo _regionInfo, RegionHandshakeArgs args)
public void SendRegionHandshake()
{
RegionInfo regionInfo = m_scene.RegionInfo;
RegionSettings regionSettings = regionInfo.RegionSettings;

View File

@@ -1725,11 +1725,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// circuit code to the existing child agent. This is not particularly obvious.
SendAckImmediate(endPoint, uccp.Header.Sequence);
client.CheckViewerCaps();
// We only want to send initial data to new clients, not ones which are being converted from child to root.
if (client != null)
{
client.SendRegionHandshake();
client.CheckViewerCaps();
// We only want to send initial data to new clients, not ones which are being converted from child to root.
bool tp = (aCircuit.teleportFlags > 0);
// Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
if (!tp)