* 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.*
This commit is contained in:
Adam Frisby
2008-11-08 17:20:54 +00:00
parent 07cfa1e70b
commit cf0a14bec9
33 changed files with 111 additions and 116 deletions

View File

@@ -52,7 +52,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// Handles new client connections
/// Constructor takes a single Packet and authenticates everything
/// </summary>
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<IGroupsModule>();
m_moneyBalance = 1000;
@@ -1076,19 +1079,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <summary>
/// Send an instant message to this client
/// </summary>
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]);
}
/// <summary>
/// Send an instant message to this client
/// </summary>
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
/// <param name="fromSessionID"></param>
/// <param name="FromAvatarName"></param>
/// <param name="Message"></param>
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<IClientIM>(this);
}
public bool TryGet<T>(out T iface)
{
if (m_clientInterfaces.ContainsKey(typeof(T)))