aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/Connectors')
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs52
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs1
-rw-r--r--OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs9
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 }