Ensure that packets do NOT get delivered to a client before the modules that can deal with the client's response have finished loading.

This commit is contained in:
Tom Grimshaw
2010-07-17 15:08:59 -07:00
parent 17412389f3
commit fabe2206db
3 changed files with 41 additions and 1 deletions

View File

@@ -900,7 +900,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Start the IClientAPI
// Spin it off so that it doesn't clog up the LLUDPServer
Util.FireAndForget(delegate(object o) { client.Start(); });
//First, and very importantly:
//
//Set our DeliverPackets flag in the client to *false*
//this will prevent us from missing important messages
//before the modules are bound
client.DeliverPackets = false;
Util.FireAndForget(
delegate
{
try
{
client.Start();
}
finally
{
//Now, release the hounds. er, packets.
client.DeliverPackets = true;
}
}
);
}
else
{