diff options
author | Charles Krinke | 2009-05-02 16:16:27 +0000 |
---|---|---|
committer | Charles Krinke | 2009-05-02 16:16:27 +0000 |
commit | 47640aca22dc567d92f54c08cc29ea8bfa373ffd (patch) | |
tree | 801b486dacdcb7c038382f5c32b7fb1a9420140f /OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs | |
parent | Added the "out" connector (aka client) for the Grid services. Not used yet. (diff) | |
download | opensim-SC_OLD-47640aca22dc567d92f54c08cc29ea8bfa373ffd.zip opensim-SC_OLD-47640aca22dc567d92f54c08cc29ea8bfa373ffd.tar.gz opensim-SC_OLD-47640aca22dc567d92f54c08cc29ea8bfa373ffd.tar.bz2 opensim-SC_OLD-47640aca22dc567d92f54c08cc29ea8bfa373ffd.tar.xz |
Thank you kindly, MCortez for a patch that solves:
Different people using Hippo 0.5.1 report that trying
to send group instant messages crashes the viewer
(Hippo 0.5.1). This is the case even for empty groups
or if all group members are online.
Diffstat (limited to 'OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs')
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs index 5ba7eff..3476cdb 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs | |||
@@ -1089,6 +1089,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1089 | 1089 | ||
1090 | private GroupRequestID GetClientGroupRequestID(IClientAPI client) | 1090 | private GroupRequestID GetClientGroupRequestID(IClientAPI client) |
1091 | { | 1091 | { |
1092 | if (client == null) | ||
1093 | { | ||
1094 | return new GroupRequestID(); | ||
1095 | } | ||
1096 | |||
1092 | lock (m_clientRequestIDInfo) | 1097 | lock (m_clientRequestIDInfo) |
1093 | { | 1098 | { |
1094 | if (!m_clientRequestIDInfo.ContainsKey(client.AgentId)) | 1099 | if (!m_clientRequestIDInfo.ContainsKey(client.AgentId)) |
@@ -1098,7 +1103,19 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1098 | info.RequestID.SessionID = client.SessionId; | 1103 | info.RequestID.SessionID = client.SessionId; |
1099 | 1104 | ||
1100 | UserProfileData userProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(client.AgentId); | 1105 | UserProfileData userProfile = m_sceneList[0].CommsManager.UserService.GetUserProfile(client.AgentId); |
1101 | if (userProfile is ForeignUserProfileData) | 1106 | if (userProfile == null) |
1107 | { | ||
1108 | // This should be impossible. If I've been passed a reference to a client | ||
1109 | // that client should be registered with the UserService. So something | ||
1110 | // is horribly wrong somewhere. | ||
1111 | |||
1112 | m_log.WarnFormat("[GROUPS]: Could not find a user profile for {0} / {1}", client.Name, client.AgentId); | ||
1113 | |||
1114 | // Default to local user service and hope for the best? | ||
1115 | info.RequestID.UserServiceURL = m_sceneList[0].CommsManager.NetworkServersInfo.UserURL; | ||
1116 | |||
1117 | } | ||
1118 | else if (userProfile is ForeignUserProfileData) | ||
1102 | { | 1119 | { |
1103 | // They aren't from around here | 1120 | // They aren't from around here |
1104 | ForeignUserProfileData fupd = (ForeignUserProfileData)userProfile; | 1121 | ForeignUserProfileData fupd = (ForeignUserProfileData)userProfile; |