diff options
Diffstat (limited to 'OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs')
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs index adf1103..5597381 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs | |||
@@ -137,8 +137,14 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
137 | // IM dialogs need to be pre-processed and have their sessionID filled by the server | 137 | // IM dialogs need to be pre-processed and have their sessionID filled by the server |
138 | // so the sim can match the transaction on the return packet. | 138 | // so the sim can match the transaction on the return packet. |
139 | 139 | ||
140 | // Don't send a Friend Dialog IM with a UUID.Zero session. | 140 | // Don't process IMs that are handled elsewhere (e.g. friend dialog |
141 | if (!dialogHandledElsewhere) | 141 | // IMs) with a non-UUID.Zero agent session, as those have been send |
142 | // by a client (either directly or from another region via | ||
143 | // inter-region communication) and will be processed in another | ||
144 | // module (e.g. the friends-module). | ||
145 | // IMs with fromAgentSession == UUID.Zero come from the server, and | ||
146 | // have to be passed to the matching viewer | ||
147 | if (!dialogHandledElsewhere || fromAgentSession == UUID.Zero) | ||
142 | { | 148 | { |
143 | // Try root avatar only first | 149 | // Try root avatar only first |
144 | foreach (Scene scene in m_scenes) | 150 | foreach (Scene scene in m_scenes) |