* Fixes issue #4329 "llDialog fails silently" by updating OpenMetaverse.dll

* Prints a warning for any future packet splitting failures
0.6.8-post-fixes
John Hurliman 2009-10-30 00:08:41 -07:00
parent aecaa51063
commit a05c67bebb
6 changed files with 33 additions and 27 deletions

View File

@ -4329,11 +4329,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// </summary> /// </summary>
protected virtual void RegisterLocalPacketHandlers() protected virtual void RegisterLocalPacketHandlers()
{ {
AddLocalPacketHandler(PacketType.LogoutRequest, Logout); AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout);
AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate); AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate);
AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect); AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect);
AddLocalPacketHandler(PacketType.AgentCachedTexture, AgentTextureCached); AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached);
AddLocalPacketHandler(PacketType.MultipleObjectUpdate, MultipleObjUpdate); AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate);
AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest);
AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest);
AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest);
@ -4602,7 +4602,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <param name="client"></param> /// <param name="client"></param>
/// <param name="packet"></param> /// <param name="packet"></param>
/// <returns></returns> /// <returns></returns>
protected virtual bool Logout(IClientAPI client, Packet packet) protected virtual bool HandleLogout(IClientAPI client, Packet packet)
{ {
if (packet.Type == PacketType.LogoutRequest) if (packet.Type == PacketType.LogoutRequest)
{ {
@ -4640,7 +4640,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <param name="simclient"></param> /// <param name="simclient"></param>
/// <param name="packet"></param> /// <param name="packet"></param>
/// <returns></returns> /// <returns></returns>
protected bool AgentTextureCached(IClientAPI simclient, Packet packet) protected bool HandleAgentTextureCached(IClientAPI simclient, Packet packet)
{ {
//m_log.Debug("texture cached: " + packet.ToString()); //m_log.Debug("texture cached: " + packet.ToString());
AgentCachedTexturePacket cachedtex = (AgentCachedTexturePacket)packet; AgentCachedTexturePacket cachedtex = (AgentCachedTexturePacket)packet;
@ -4670,7 +4670,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return true; return true;
} }
protected bool MultipleObjUpdate(IClientAPI simClient, Packet packet) protected bool HandleMultipleObjUpdate(IClientAPI simClient, Packet packet)
{ {
MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket)packet; MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket)packet;
if (multipleupdate.AgentData.SessionID != SessionId) return false; if (multipleupdate.AgentData.SessionID != SessionId) return false;

View File

@ -256,8 +256,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
byte[][] datas = packet.ToBytesMultiple(); byte[][] datas = packet.ToBytesMultiple();
int packetCount = datas.Length; int packetCount = datas.Length;
//if (packetCount > 1) if (packetCount < 1)
// m_log.Debug("[LLUDPSERVER]: Split " + packet.Type + " packet into " + packetCount + " packets"); m_log.Error("[LLUDPSERVER]: Failed to split " + packet.Type + " with estimated length " + packet.Length);
for (int i = 0; i < packetCount; i++) for (int i = 0; i < packetCount; i++)
{ {
@ -295,8 +295,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
byte[][] datas = packet.ToBytesMultiple(); byte[][] datas = packet.ToBytesMultiple();
int packetCount = datas.Length; int packetCount = datas.Length;
//if (packetCount > 1) if (packetCount < 1)
// m_log.Debug("[LLUDPSERVER]: Split " + packet.Type + " packet into " + packetCount + " packets"); m_log.Error("[LLUDPSERVER]: Failed to split " + packet.Type + " with estimated length " + packet.Length);
for (int i = 0; i < packetCount; i++) for (int i = 0; i < packetCount; i++)
{ {

View File

@ -130,9 +130,9 @@ namespace OpenSim.TestSuite
public void startup() public void startup()
{ {
client.Settings.LOGIN_SERVER = loginURI; client.Settings.LOGIN_SERVER = loginURI;
client.Network.OnConnected += new NetworkManager.ConnectedCallback(this.Network_OnConnected); client.Network.LoginProgress += this.Network_LoginProgress;
client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); client.Network.SimConnected += this.Network_SimConnected;
client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); client.Network.Disconnected += this.Network_OnDisconnected;
if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name"))
{ {
@ -155,19 +155,22 @@ namespace OpenSim.TestSuite
} }
} }
public void Network_OnConnected(object sender) public void Network_LoginProgress(object sender, LoginProgressEventArgs args)
{ {
if (OnConnected != null) if (args.Status == LoginStatus.Success)
{ {
OnConnected(this, EventType.CONNECTED); if (OnConnected != null)
{
OnConnected(this, EventType.CONNECTED);
}
} }
} }
public void Simulator_Connected(object sender) public void Network_SimConnected(object sender, SimConnectedEventArgs args)
{ {
} }
public void Network_OnDisconnected(NetworkManager.DisconnectType reason, string message) public void Network_OnDisconnected(object sender, DisconnectedEventArgs args)
{ {
if (OnDisconnected != null) if (OnDisconnected != null)
{ {

View File

@ -151,9 +151,9 @@ namespace pCampBot
client.Throttle.Texture = 100000; client.Throttle.Texture = 100000;
client.Throttle.Wind = 100000; client.Throttle.Wind = 100000;
client.Throttle.Total = 400000; client.Throttle.Total = 400000;
client.Network.OnConnected += new NetworkManager.ConnectedCallback(this.Network_OnConnected); client.Network.LoginProgress += this.Network_LoginProgress;
client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected); client.Network.SimConnected += this.Network_SimConnected;
client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected); client.Network.Disconnected += this.Network_OnDisconnected;
client.Objects.ObjectUpdate += Objects_NewPrim; client.Objects.ObjectUpdate += Objects_NewPrim;
//client.Assets.OnAssetReceived += Asset_ReceivedCallback; //client.Assets.OnAssetReceived += Asset_ReceivedCallback;
if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name")) if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name"))
@ -349,19 +349,22 @@ namespace pCampBot
return clothfolder; return clothfolder;
} }
public void Network_OnConnected(object sender) public void Network_LoginProgress(object sender, LoginProgressEventArgs args)
{ {
if (OnConnected != null) if (args.Status == LoginStatus.Success)
{ {
OnConnected(this, EventType.CONNECTED); if (OnConnected != null)
{
OnConnected(this, EventType.CONNECTED);
}
} }
} }
public void Simulator_Connected(object sender) public void Network_SimConnected(object sender, SimConnectedEventArgs args)
{ {
} }
public void Network_OnDisconnected(NetworkManager.DisconnectType reason, string message) public void Network_OnDisconnected(object sender, DisconnectedEventArgs args)
{ {
if (OnDisconnected != null) if (OnDisconnected != null)
{ {

Binary file not shown.

View File

@ -42,7 +42,7 @@
; SmartThreadPool is reported to work well on Mono/Linux, but ; SmartThreadPool is reported to work well on Mono/Linux, but
; UnsafeQueueUserWorkItem has been benchmarked with better ; UnsafeQueueUserWorkItem has been benchmarked with better
; performance on .NET/Windows ; performance on .NET/Windows
;async_call_method = SmartThreadPool async_call_method = SmartThreadPool
; There are several operations on large collections (such as ; There are several operations on large collections (such as
; the current avatar list) that can be run synchronously or ; the current avatar list) that can be run synchronously or