From cf0a14bec94322656f57890d49fead85ed31730e Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sat, 8 Nov 2008 17:20:54 +0000 Subject: * Added IClientIM to IClientCore interfaces * Changed SendInstantMessage, dropped fromAgentSession and imSessionID as security precaution, see http://opensimulator.org/wiki/OpenSim_0.6_IClientAPI#Porting_Guide for details on porting. * Removed unused usings from Framework.* --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 31 +++++++++++++--------- .../Currency/SampleMoney/SampleMoneyModule.cs | 10 +++---- .../Avatar/InstantMessage/InstantMessageModule.cs | 18 ++++++------- .../Inventory/Transfer/InventoryTransferModule.cs | 6 ++--- .../Environment/Modules/World/NPC/NPCAvatar.cs | 11 ++++---- OpenSim/Region/Environment/Scenes/Scene.cs | 4 +-- .../Region/Examples/SimpleModule/MyNpcCharacter.cs | 11 ++++---- 7 files changed, 47 insertions(+), 44 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index d63933d..2a0f97d 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -52,7 +52,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// Handles new client connections /// Constructor takes a single Packet and authenticates everything /// - public class LLClientView : IClientAPI, IClientCore + public class LLClientView : IClientAPI, IClientCore, IClientIM { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -394,6 +394,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP AuthenticateResponse sessionInfo, UUID agentId, UUID sessionId, uint circuitCode, EndPoint proxyEP, ClientStackUserSettings userSettings) { + // Should be called first? + RegisterInterfaces(); + m_GroupsModule = scene.RequestModuleInterface(); m_moneyBalance = 1000; @@ -1076,19 +1079,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// /// Send an instant message to this client /// - public void SendInstantMessage(UUID fromAgent, UUID fromAgentSession, string message, UUID toAgent, - UUID imSessionID, string fromName, byte dialog, uint timeStamp) + public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp) { - SendInstantMessage( - fromAgent, fromAgentSession, message, toAgent, - imSessionID, fromName, dialog, timeStamp, false, new byte[0]); + SendInstantMessage(fromAgent, message, toAgent, fromName, dialog, timeStamp, false, new byte[0]); } /// /// Send an instant message to this client /// - public void SendInstantMessage(UUID fromAgent, UUID fromAgentSession, string message, UUID toAgent, - UUID imSessionID, string fromName, byte dialog, uint timeStamp, + public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, + string fromName, byte dialog, uint timeStamp, bool fromGroup, byte[] binaryBucket) { if (((Scene)(m_scene)).ExternalChecks.ExternalChecksCanInstantMessage(fromAgent, toAgent)) @@ -1097,15 +1097,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP = (ImprovedInstantMessagePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedInstantMessage); msg.AgentData.AgentID = fromAgent; - msg.AgentData.SessionID = fromAgentSession; + msg.AgentData.SessionID = UUID.Zero; msg.MessageBlock.FromAgentName = Utils.StringToBytes(fromName); msg.MessageBlock.Dialog = dialog; msg.MessageBlock.FromGroup = fromGroup; - msg.MessageBlock.ID = imSessionID; + msg.MessageBlock.ID = fromAgent ^ toAgent; msg.MessageBlock.Offline = 0; msg.MessageBlock.ParentEstateID = 0; msg.MessageBlock.Position = new Vector3(); - msg.MessageBlock.RegionID = UUID.Random(); + msg.MessageBlock.RegionID = UUID.Zero; msg.MessageBlock.Timestamp = timeStamp; msg.MessageBlock.ToAgentID = toAgent; msg.MessageBlock.Message = Utils.StringToBytes(message); @@ -6919,10 +6919,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// /// /// - public void SendBlueBoxMessage(UUID FromAvatarID, UUID fromSessionID, String FromAvatarName, String Message) + public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message) { if (!ChildAgentStatus()) - SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, 1, (uint)Util.UnixTimeSinceEpoch()); + SendInstantMessage(FromAvatarID, Message, AgentId, FromAvatarName, 1, (uint)Util.UnixTimeSinceEpoch()); //SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)21,(uint) Util.UnixTimeSinceEpoch()); } @@ -7675,6 +7675,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP } } + protected virtual void RegisterInterfaces() + { + RegisterInterface(this); + } + public bool TryGet(out T iface) { if (m_clientInterfaces.ContainsKey(typeof(T))) diff --git a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs index fc1decf..c8050da 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs @@ -819,9 +819,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney Hashtable retparam = new Hashtable(); Hashtable requestData = (Hashtable) request.Params[0]; - UUID agentId = UUID.Zero; - UUID soundId = UUID.Zero; - UUID regionId = UUID.Zero; + UUID agentId; + UUID soundId; + UUID regionId; UUID.TryParse((string) requestData["agentId"], out agentId); UUID.TryParse((string) requestData["soundId"], out soundId); @@ -832,7 +832,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney Scene userScene = GetSceneByUUID(regionId); if (userScene != null) { - if (userScene.RegionInfo.regionSecret.ToString() == secret) + if (userScene.RegionInfo.regionSecret == secret) { IClientAPI client = LocateClientObject(agentId); @@ -842,7 +842,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney if (soundId != UUID.Zero) client.SendPlayAttachedSound(soundId, UUID.Zero, UUID.Zero, 1.0f, 0); - client.SendBlueBoxMessage(UUID.Zero, UUID.Zero, "", text); + client.SendBlueBoxMessage(UUID.Zero, "", text); retparam.Add("success", true); } diff --git a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs index 5597381..b8fbe2b 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs @@ -155,8 +155,8 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; if (!user.IsChildAgent) { - user.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message, - toAgentID, imSessionID, fromAgentName, dialog, + user.ControllingClient.SendInstantMessage(fromAgentID, message, + toAgentID, fromAgentName, dialog, timestamp, fromGroup, binaryBucket); // Message sent return; @@ -172,8 +172,8 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage // Local message ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; - user.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message, - toAgentID, imSessionID, fromAgentName, dialog, + user.ControllingClient.SendInstantMessage(fromAgentID, message, + toAgentID, fromAgentName, dialog, timestamp, fromGroup, binaryBucket); // Message sent return; @@ -199,7 +199,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage if (client != null) { if (dialog != (byte)InstantMessageDialog.StartTyping && dialog != (byte)InstantMessageDialog.StopTyping && dialog != (byte)InstantMessageDialog.SessionDrop) - client.SendInstantMessage(toAgentID, fromAgentSession, "Unable to send instant message. User is not logged in.", fromAgentID, imSessionID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); + client.SendInstantMessage(toAgentID, "Unable to send instant message. User is not logged in.", fromAgentID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); } } } @@ -551,7 +551,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage if (client != null) { if (dialog != (byte)InstantMessageDialog.StartTyping && dialog != (byte)InstantMessageDialog.StopTyping && dialog != (byte)InstantMessageDialog.SessionDrop) - client.SendInstantMessage(toAgentID, fromAgentSession, "Unable to send instant message", fromAgentID, imSessionID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); + client.SendInstantMessage(toAgentID, "Unable to send instant message", fromAgentID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch()); } return; } @@ -562,7 +562,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage if (client != null) { if (dialog != (byte)InstantMessageDialog.StartTyping && dialog != (byte)InstantMessageDialog.StopTyping && dialog != (byte)InstantMessageDialog.SessionDrop) - client.SendInstantMessage(toAgentID, fromAgentSession, "Unable to send instant message", fromAgentID, imSessionID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); + client.SendInstantMessage(toAgentID, "Unable to send instant message", fromAgentID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch()); } return; } @@ -635,7 +635,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage if (client != null) { if (dialog != (byte)InstantMessageDialog.StartTyping && dialog != (byte)InstantMessageDialog.StopTyping && dialog != (byte)InstantMessageDialog.SessionDrop) - client.SendInstantMessage(toAgentID, fromAgentSession, "Unable to send instant message: Agent Offline", fromAgentID, imSessionID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); + client.SendInstantMessage(toAgentID, "Unable to send instant message: Agent Offline", fromAgentID, "System", (byte)InstantMessageDialog.BusyAutoResponse, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); } } } @@ -643,7 +643,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage { // send Agent doesn't exist message if (client != null) - client.SendInstantMessage(toAgentID, fromAgentSession, "Unable to send instant message: Are you sure this agent exists anymore?", fromAgentID, imSessionID, "System", (byte)InstantMessageDialog.MessageFromObject, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); + client.SendInstantMessage(toAgentID, "Unable to send instant message: Are you sure this agent exists anymore?", fromAgentID, "System", (byte)InstantMessageDialog.MessageFromObject, (uint)Util.UnixTimeSinceEpoch());// SendAlertMessage("Unable to send instant message"); } } diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index a07fc5f..d8b203f 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs @@ -135,7 +135,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Transfer m_pendingOffers[imSessionID] = itemId; user.ControllingClient.SendInstantMessage( - fromAgentID, fromAgentSession, message, toAgentID, imSessionID, fromAgentName, + fromAgentID, message, toAgentID, fromAgentName, dialog, timestamp, false, binaryBucket); return; @@ -167,7 +167,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Transfer if (!user.IsChildAgent) { user.ControllingClient.SendInstantMessage( - fromAgentID, fromAgentSession, message, toAgentID, imSessionID, fromAgentName, + fromAgentID, message, toAgentID, fromAgentName, dialog, timestamp, false, binaryBucket); if (m_pendingOffers.ContainsKey(imSessionID)) @@ -213,7 +213,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Transfer if (!user.IsChildAgent) { user.ControllingClient.SendInstantMessage( - fromAgentID, fromAgentSession, message, toAgentID, imSessionID, fromAgentName, + fromAgentID, message, toAgentID, fromAgentName, dialog, timestamp, false, binaryBucket); if (m_pendingOffers.ContainsKey(imSessionID)) diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index 369b56c..155a01b 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs @@ -471,15 +471,14 @@ namespace OpenSim.Region.Environment.Modules.World.NPC { } - public virtual void SendInstantMessage(UUID fromAgent, UUID fromAgentSession, string message, UUID toAgent, - UUID imSessionID, string fromName, byte dialog, uint timeStamp) + public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp) { + } - public virtual void SendInstantMessage(UUID fromAgent, UUID fromAgentSession, string message, UUID toAgent, - UUID imSessionID, string fromName, byte dialog, uint timeStamp, - bool fromGroup, byte[] binaryBucket) + public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp, bool fromGroup, byte[] binaryBucket) { + } public void SendGenericMessage(string method, List message) @@ -793,7 +792,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC set { m_circuitCode = value; } } - public void SendBlueBoxMessage(UUID FromAvatarID, UUID fromSessionID, String FromAvatarName, String Message) + public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message) { } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 4b8df37..70ea709 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -3424,7 +3424,7 @@ namespace OpenSim.Region.Environment.Scenes foreach (ScenePresence presence in presenceList) { if (!presence.IsChildAgent) - presence.ControllingClient.SendBlueBoxMessage(FromAvatarID, fromSessionID, FromAvatarName, Message); + presence.ControllingClient.SendBlueBoxMessage(FromAvatarID, FromAvatarName, Message); } } @@ -3441,7 +3441,7 @@ namespace OpenSim.Region.Environment.Scenes ClientManager.ForEachClient(delegate(IClientAPI controller) { - controller.SendBlueBoxMessage(FromAvatarID, fromSessionID, FromAvatarName, Message); + controller.SendBlueBoxMessage(FromAvatarID, FromAvatarName, Message); } ); } diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 0131109..85d51e6 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs @@ -383,15 +383,14 @@ namespace OpenSim.Region.Examples.SimpleModule { } - public virtual void SendInstantMessage(UUID fromAgent, UUID fromAgentSession, string message, UUID toAgent, - UUID imSessionID, string fromName, byte dialog, uint timeStamp) + public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp) { + } - public virtual void SendInstantMessage(UUID fromAgent, UUID fromAgentSession, string message, UUID toAgent, - UUID imSessionID, string fromName, byte dialog, uint timeStamp, - bool fromGroup, byte[] binaryBucket) + public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp, bool fromGroup, byte[] binaryBucket) { + } public void SendGenericMessage(string method, List message) @@ -780,7 +779,7 @@ namespace OpenSim.Region.Examples.SimpleModule set { m_circuitCode = value; } } - public void SendBlueBoxMessage(UUID FromAvatarID, UUID fromSessionID, String FromAvatarName, String Message) + public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message) { } -- cgit v1.1