diff options
Diffstat (limited to 'OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups')
-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; |