diff options
Fixed a number of bugs in the local InstantMessage handling, sending InstantMessages will no longer crash the server. But they still aren't really working correctly, you can't type replies to received messages.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/Communications/IGridServices.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/General/Interfaces/IClientAPI.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Capabilities/Caps.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Capabilities/LLSDCapsDetails.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.API.cs | 38 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 6 |
7 files changed, 34 insertions, 24 deletions
diff --git a/OpenSim/Framework/Communications/IGridServices.cs b/OpenSim/Framework/Communications/IGridServices.cs index c296209..d2e5ab6 100644 --- a/OpenSim/Framework/Communications/IGridServices.cs +++ b/OpenSim/Framework/Communications/IGridServices.cs | |||
@@ -31,8 +31,6 @@ using OpenSim.Framework.Types; | |||
31 | 31 | ||
32 | namespace OpenSim.Framework.Communications | 32 | namespace OpenSim.Framework.Communications |
33 | { | 33 | { |
34 | |||
35 | |||
36 | public interface IGridServices | 34 | public interface IGridServices |
37 | { | 35 | { |
38 | RegionCommsListener RegisterRegion(RegionInfo regionInfos); | 36 | RegionCommsListener RegisterRegion(RegionInfo regionInfos); |
diff --git a/OpenSim/Framework/General/Interfaces/IClientAPI.cs b/OpenSim/Framework/General/Interfaces/IClientAPI.cs index d409ebe..9079ca5 100644 --- a/OpenSim/Framework/General/Interfaces/IClientAPI.cs +++ b/OpenSim/Framework/General/Interfaces/IClientAPI.cs | |||
@@ -154,7 +154,7 @@ namespace OpenSim.Framework.Interfaces | |||
154 | void SendRegionHandshake(RegionInfo regionInfo); | 154 | void SendRegionHandshake(RegionInfo regionInfo); |
155 | void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); | 155 | void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); |
156 | void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); | 156 | void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); |
157 | void SendInstantMessage(string message, LLUUID target); | 157 | void SendInstantMessage(string message, LLUUID target, string fromName, LLUUID id); |
158 | void SendLayerData(float[] map); | 158 | void SendLayerData(float[] map); |
159 | void SendLayerData(int px, int py, float[] map); | 159 | void SendLayerData(int px, int py, float[] map); |
160 | void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look); | 160 | void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look); |
diff --git a/OpenSim/Region/Capabilities/Caps.cs b/OpenSim/Region/Capabilities/Caps.cs index 7216691..7acbf8e 100644 --- a/OpenSim/Region/Capabilities/Caps.cs +++ b/OpenSim/Region/Capabilities/Caps.cs | |||
@@ -79,7 +79,7 @@ namespace OpenSim.Region.Capabilities | |||
79 | 79 | ||
80 | AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest); | 80 | AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest); |
81 | // AddLegacyCapsHandler( httpListener, eventQueue, ProcessEventQueue); | 81 | // AddLegacyCapsHandler( httpListener, eventQueue, ProcessEventQueue); |
82 | // AddLegacyCapsHandler( httpListener, m_requestTexture, RequestTexture); | 82 | // AddLegacyCapsHandler( httpListener, m_requestTexture, RequestTexture); |
83 | } | 83 | } |
84 | 84 | ||
85 | [Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")] | 85 | [Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")] |
@@ -98,6 +98,7 @@ namespace OpenSim.Region.Capabilities | |||
98 | /// <returns></returns> | 98 | /// <returns></returns> |
99 | public string CapsRequest(string request, string path, string param) | 99 | public string CapsRequest(string request, string path, string param) |
100 | { | 100 | { |
101 | // Console.WriteLine("caps request " + request); | ||
101 | string result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities()); | 102 | string result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities()); |
102 | return result; | 103 | return result; |
103 | } | 104 | } |
@@ -112,6 +113,8 @@ namespace OpenSim.Region.Capabilities | |||
112 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; | 113 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; |
113 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; | 114 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; |
114 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; | 115 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; |
116 | //caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; | ||
117 | // caps.ChatSessionRequest = capsBaseUrl + m_requestTexture; | ||
115 | return caps; | 118 | return caps; |
116 | } | 119 | } |
117 | 120 | ||
@@ -149,6 +152,7 @@ namespace OpenSim.Region.Capabilities | |||
149 | /// <returns></returns> | 152 | /// <returns></returns> |
150 | public string RequestTexture(string request, string path, string param) | 153 | public string RequestTexture(string request, string path, string param) |
151 | { | 154 | { |
155 | Console.WriteLine("texture request " + request); | ||
152 | // Needs implementing (added to remove compiler warning) | 156 | // Needs implementing (added to remove compiler warning) |
153 | return ""; | 157 | return ""; |
154 | } | 158 | } |
diff --git a/OpenSim/Region/Capabilities/LLSDCapsDetails.cs b/OpenSim/Region/Capabilities/LLSDCapsDetails.cs index 1522559..ecb2328 100644 --- a/OpenSim/Region/Capabilities/LLSDCapsDetails.cs +++ b/OpenSim/Region/Capabilities/LLSDCapsDetails.cs | |||
@@ -6,6 +6,8 @@ namespace OpenSim.Region.Capabilities | |||
6 | public string MapLayer = ""; | 6 | public string MapLayer = ""; |
7 | public string NewFileAgentInventory = ""; | 7 | public string NewFileAgentInventory = ""; |
8 | //public string EventQueueGet = ""; | 8 | //public string EventQueueGet = ""; |
9 | //public string RequestTextureDownload = ""; | ||
10 | //public string ChatSessionRequest = ""; | ||
9 | 11 | ||
10 | public LLSDCapsDetails() | 12 | public LLSDCapsDetails() |
11 | { | 13 | { |
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index e88995f..5be82dd 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs | |||
@@ -245,23 +245,29 @@ namespace OpenSim.Region.ClientStack | |||
245 | /// <remarks>TODO</remarks> | 245 | /// <remarks>TODO</remarks> |
246 | /// <param name="message"></param> | 246 | /// <param name="message"></param> |
247 | /// <param name="target"></param> | 247 | /// <param name="target"></param> |
248 | public void SendInstantMessage(string message, LLUUID target) | 248 | public void SendInstantMessage(string message, LLUUID target, string fromName) |
249 | { | 249 | { |
250 | ImprovedInstantMessagePacket msg = new ImprovedInstantMessagePacket(); | 250 | if (message != "typing") |
251 | msg.AgentData.AgentID = this.AgentID; | 251 | { |
252 | msg.AgentData.SessionID = this.SessionID; | 252 | Encoding enc = Encoding.ASCII; |
253 | 253 | ImprovedInstantMessagePacket msg = new ImprovedInstantMessagePacket(); | |
254 | msg.MessageBlock.Dialog = 0; | 254 | msg.AgentData.AgentID = this.AgentID; |
255 | msg.MessageBlock.FromGroup = false; | 255 | msg.AgentData.SessionID = this.SessionID; |
256 | msg.MessageBlock.ID = target.Combine(this.AgentID); | 256 | msg.MessageBlock.FromAgentName = enc.GetBytes(fromName + " \0"); |
257 | msg.MessageBlock.Offline = 0; | 257 | msg.MessageBlock.Dialog = 0; |
258 | msg.MessageBlock.ParentEstateID = 0; | 258 | msg.MessageBlock.FromGroup = false; |
259 | msg.MessageBlock.Position = new LLVector3(); | 259 | msg.MessageBlock.ID = target.Combine(this.SecureSessionID); |
260 | msg.MessageBlock.RegionID = new LLUUID(); | 260 | msg.MessageBlock.Offline = 0; |
261 | msg.MessageBlock.Timestamp = 0; | 261 | msg.MessageBlock.ParentEstateID = 0; |
262 | msg.MessageBlock.ToAgentID = target; | 262 | msg.MessageBlock.Position = new LLVector3(); |
263 | 263 | msg.MessageBlock.RegionID = new LLUUID(); | |
264 | this.OutPacket(msg); | 264 | msg.MessageBlock.Timestamp = 0; |
265 | msg.MessageBlock.ToAgentID = target; | ||
266 | msg.MessageBlock.Message = enc.GetBytes(message + "\0"); | ||
267 | msg.MessageBlock.BinaryBucket = new byte[0]; | ||
268 | |||
269 | this.OutPacket(msg); | ||
270 | } | ||
265 | } | 271 | } |
266 | 272 | ||
267 | /// <summary> | 273 | /// <summary> |
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs index 3265898..e5249f9 100644 --- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs +++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs | |||
@@ -102,9 +102,7 @@ namespace OpenSim.Region.ClientStack | |||
102 | this.OnInstantMessage(msgpack.AgentData.AgentID, msgpack.MessageBlock.ToAgentID, | 102 | this.OnInstantMessage(msgpack.AgentData.AgentID, msgpack.MessageBlock.ToAgentID, |
103 | msgpack.MessageBlock.Timestamp, IMfromName, IMmessage); | 103 | msgpack.MessageBlock.Timestamp, IMfromName, IMmessage); |
104 | } | 104 | } |
105 | |||
106 | break; | 105 | break; |
107 | |||
108 | case PacketType.RezObject: | 106 | case PacketType.RezObject: |
109 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; | 107 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; |
110 | AgentInventory inven = this.m_inventoryCache.GetAgentsInventory(this.AgentID); | 108 | AgentInventory inven = this.m_inventoryCache.GetAgentsInventory(this.AgentID); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 1753772..14bf87c 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -113,8 +113,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
113 | if (this.Avatars.ContainsKey(fromAgentID)) | 113 | if (this.Avatars.ContainsKey(fromAgentID)) |
114 | { | 114 | { |
115 | // Local sim message | 115 | // Local sim message |
116 | ScenePresence avatar = this.Avatars[fromAgentID]; | 116 | ScenePresence fromAvatar = this.Avatars[fromAgentID]; |
117 | avatar.ControllingClient.SendInstantMessage(message, toAgentID); | 117 | ScenePresence toAvatar = this.Avatars[toAgentID]; |
118 | string fromName = fromAvatar.firstname + " " + fromAvatar.lastname; | ||
119 | toAvatar.ControllingClient.SendInstantMessage(message, toAgentID, fromName); | ||
118 | } | 120 | } |
119 | else | 121 | else |
120 | { | 122 | { |