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 +++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP') 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))) -- cgit v1.1