diff options
Diffstat (limited to 'OpenSim/Services/Connectors')
3 files changed, 61 insertions, 1 deletions
diff --git a/OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs index e3f3260..e984a54 100644 --- a/OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs | |||
@@ -255,6 +255,58 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
255 | return false; | 255 | return false; |
256 | 256 | ||
257 | } | 257 | } |
258 | |||
259 | public List<UUID> StatusNotification(List<string> friends, UUID userID, bool online) | ||
260 | { | ||
261 | Dictionary<string, object> sendData = new Dictionary<string, object>(); | ||
262 | List<UUID> friendsOnline = new List<UUID>(); | ||
263 | |||
264 | sendData["METHOD"] = "statusnotification"; | ||
265 | sendData["userID"] = userID.ToString(); | ||
266 | sendData["online"] = online.ToString(); | ||
267 | int i = 0; | ||
268 | foreach (string s in friends) | ||
269 | { | ||
270 | sendData["friend_" + i.ToString()] = s; | ||
271 | i++; | ||
272 | } | ||
273 | |||
274 | string reply = string.Empty; | ||
275 | string uri = m_ServerURI + "/hgfriends"; | ||
276 | try | ||
277 | { | ||
278 | reply = SynchronousRestFormsRequester.MakeRequest("POST", | ||
279 | uri, | ||
280 | ServerUtils.BuildQueryString(sendData)); | ||
281 | } | ||
282 | catch (Exception e) | ||
283 | { | ||
284 | m_log.DebugFormat("[HGFRIENDS CONNECTOR]: Exception when contacting friends server at {0}: {1}", uri, e.Message); | ||
285 | return friendsOnline; | ||
286 | } | ||
287 | |||
288 | if (reply != string.Empty) | ||
289 | { | ||
290 | Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply); | ||
291 | |||
292 | // Here is the actual response | ||
293 | foreach (string key in replyData.Keys) | ||
294 | { | ||
295 | if (key.StartsWith("friend_") && replyData[key] != null) | ||
296 | { | ||
297 | UUID uuid; | ||
298 | if (UUID.TryParse(replyData[key].ToString(), out uuid)) | ||
299 | friendsOnline.Add(uuid); | ||
300 | } | ||
301 | } | ||
302 | } | ||
303 | else | ||
304 | m_log.DebugFormat("[HGFRIENDS CONNECTOR]: Received empty reply from remote StatusNotify"); | ||
305 | |||
306 | return friendsOnline; | ||
307 | |||
308 | } | ||
309 | |||
258 | #endregion | 310 | #endregion |
259 | } | 311 | } |
260 | } \ No newline at end of file | 312 | } \ No newline at end of file |
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs index c07c6a6..c542c29 100644 --- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs | |||
@@ -415,6 +415,7 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
415 | GetBoolResponse(request, out reason); | 415 | GetBoolResponse(request, out reason); |
416 | } | 416 | } |
417 | 417 | ||
418 | [Obsolete] | ||
418 | public List<UUID> StatusNotification(List<string> friends, UUID userID, bool online) | 419 | public List<UUID> StatusNotification(List<string> friends, UUID userID, bool online) |
419 | { | 420 | { |
420 | Hashtable hash = new Hashtable(); | 421 | Hashtable hash = new Hashtable(); |
diff --git a/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs b/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs index 7815d7d..5731e2f 100644 --- a/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs +++ b/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs | |||
@@ -202,8 +202,15 @@ namespace OpenSim.Services.Connectors | |||
202 | 202 | ||
203 | Dictionary<string, object> structData = data.ToKeyValuePairs(); | 203 | Dictionary<string, object> structData = data.ToKeyValuePairs(); |
204 | 204 | ||
205 | foreach (KeyValuePair<string,object> kvp in structData) | 205 | foreach (KeyValuePair<string, object> kvp in structData) |
206 | { | ||
207 | if (kvp.Value == null) | ||
208 | { | ||
209 | m_log.DebugFormat("[ACCOUNTS CONNECTOR]: Null value for {0}", kvp.Key); | ||
210 | continue; | ||
211 | } | ||
206 | sendData[kvp.Key] = kvp.Value.ToString(); | 212 | sendData[kvp.Key] = kvp.Value.ToString(); |
213 | } | ||
207 | 214 | ||
208 | return SendAndGetBoolReply(sendData); | 215 | return SendAndGetBoolReply(sendData); |
209 | } | 216 | } |