diff options
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsModule.cs | 19 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 7 |
2 files changed, 20 insertions, 6 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; |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 2ae7fb7..3130bf0 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -1245,15 +1245,12 @@ | |||
1245 | Module = Default | 1245 | Module = Default |
1246 | 1246 | ||
1247 | 1247 | ||
1248 | ; The XmlRpcGroups implementation can be used against the publically available service | 1248 | ; The PHP code for the server is available from the Flotsam project for you to deploy |
1249 | ; that I have made available for testing. Your group data is not guarenteed safe | ||
1250 | ; or available if you use this service, but it's available now and seems to work. | ||
1251 | ; The PHP code for the service is available from the Flotsam project for you to deploy | ||
1252 | ; to your own server. The Flotsam project is located at http://code.google.com/p/flotsam/ | 1249 | ; to your own server. The Flotsam project is located at http://code.google.com/p/flotsam/ |
1253 | ; | 1250 | ; |
1254 | ;Module = XmlRpcGroups | 1251 | ;Module = XmlRpcGroups |
1255 | 1252 | ||
1256 | ;XmlRpcServiceURL = http://osflotsam.org/xmlrpc.php | 1253 | ;XmlRpcServiceURL = http://yourxmlrpcserver.com/xmlrpc.php |
1257 | ;XmlRpcServiceReadKey = 1234 | 1254 | ;XmlRpcServiceReadKey = 1234 |
1258 | ;XmlRpcServiceWriteKey = 1234 | 1255 | ;XmlRpcServiceWriteKey = 1234 |
1259 | 1256 | ||