aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Communications')
-rw-r--r--OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs2
-rw-r--r--OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs2
-rw-r--r--OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs72
-rw-r--r--OpenSim/Region/Communications/Hypergrid/HGUserServices.cs4
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs12
5 files changed, 84 insertions, 8 deletions
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs
index 381070e..80f2e79 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs
@@ -59,7 +59,7 @@ namespace OpenSim.Region.Communications.Hypergrid
59 HGUserServices userServices = new HGUserServices(this); 59 HGUserServices userServices = new HGUserServices(this);
60 // This plugin arrangement could eventually be configurable rather than hardcoded here. 60 // This plugin arrangement could eventually be configurable rather than hardcoded here.
61 userServices.AddPlugin(new TemporaryUserProfilePlugin()); 61 userServices.AddPlugin(new TemporaryUserProfilePlugin());
62 userServices.AddPlugin(new OGS1UserDataPlugin(this)); 62 userServices.AddPlugin(new HGUserDataPlugin(this, userServices));
63 63
64 m_userService = userServices; 64 m_userService = userServices;
65 m_messageService = userServices; 65 m_messageService = userServices;
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs
index 568437d..e4e12d4 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs
@@ -57,7 +57,7 @@ namespace OpenSim.Region.Communications.Hypergrid
57 HGUserServices hgUserService = new HGUserServices(this, localUserService); 57 HGUserServices hgUserService = new HGUserServices(this, localUserService);
58 // This plugin arrangement could eventually be configurable rather than hardcoded here. 58 // This plugin arrangement could eventually be configurable rather than hardcoded here.
59 hgUserService.AddPlugin(new TemporaryUserProfilePlugin()); 59 hgUserService.AddPlugin(new TemporaryUserProfilePlugin());
60 hgUserService.AddPlugin(new OGS1UserDataPlugin(this)); 60 hgUserService.AddPlugin(new HGUserDataPlugin(this, hgUserService));
61 61
62 m_userService = hgUserService; 62 m_userService = hgUserService;
63 m_userAdminService = hgUserService; 63 m_userAdminService = hgUserService;
diff --git a/OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs b/OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs
new file mode 100644
index 0000000..4b8fc26
--- /dev/null
+++ b/OpenSim/Region/Communications/Hypergrid/HGUserDataPlugin.cs
@@ -0,0 +1,72 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections;
30using System.Collections.Generic;
31using System.Net;
32using System.Reflection;
33using System.Text.RegularExpressions;
34using System.Xml.Serialization;
35using log4net;
36using Nwc.XmlRpc;
37using OpenMetaverse;
38using OpenSim.Data;
39using OpenSim.Framework;
40using OpenSim.Framework.Communications;
41using OpenSim.Framework.Communications.Clients;
42using OpenSim.Region.Communications.OGS1;
43
44namespace OpenSim.Region.Communications.Hypergrid
45{
46 public class HGUserDataPlugin : OGS1UserDataPlugin
47 {
48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
49
50 HGUserServices m_UserServices;
51
52 public HGUserDataPlugin()
53 {
54 }
55
56 public HGUserDataPlugin(CommunicationsManager commsManager, HGUserServices userServices)
57 {
58 m_log.DebugFormat("[HG USER SERVICES]: {0} initialized", Name);
59 m_commsManager = commsManager;
60 m_UserServices = userServices;
61 }
62
63 protected override string GetUserServerURL(UUID userID)
64 {
65 string url = string.Empty;
66 if (m_UserServices.IsForeignUser(userID, out url))
67 return url;
68 return m_commsManager.NetworkServersInfo.UserURL;
69 }
70
71 }
72}
diff --git a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
index 68a9076..f1a56ef 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
@@ -311,9 +311,9 @@ namespace OpenSim.Region.Communications.Hypergrid
311 return m_commsManager.NetworkServersInfo.UserURL; 311 return m_commsManager.NetworkServersInfo.UserURL;
312 } 312 }
313 313
314 private bool IsForeignUser(UUID userID, out string userServerURL) 314 public bool IsForeignUser(UUID userID, out string userServerURL)
315 { 315 {
316 userServerURL = string.Empty; 316 userServerURL = m_commsManager.NetworkServersInfo.UserURL;
317 CachedUserInfo uinfo = m_commsManager.UserProfileCacheService.GetUserDetails(userID); 317 CachedUserInfo uinfo = m_commsManager.UserProfileCacheService.GetUserDetails(userID);
318 if (uinfo != null) 318 if (uinfo != null)
319 { 319 {
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs b/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
index 9f234be..ec8512a 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
@@ -48,6 +48,10 @@ namespace OpenSim.Region.Communications.OGS1
48 48
49 protected CommunicationsManager m_commsManager; 49 protected CommunicationsManager m_commsManager;
50 50
51 public OGS1UserDataPlugin()
52 {
53 }
54
51 public OGS1UserDataPlugin(CommunicationsManager commsManager) 55 public OGS1UserDataPlugin(CommunicationsManager commsManager)
52 { 56 {
53 m_log.DebugFormat("[OGS1 USER SERVICES]: {0} initialized", Name); 57 m_log.DebugFormat("[OGS1 USER SERVICES]: {0} initialized", Name);
@@ -108,7 +112,7 @@ namespace OpenSim.Region.Communications.OGS1
108 parameters.Add(param); 112 parameters.Add(param);
109 XmlRpcRequest req = new XmlRpcRequest("get_agent_by_uuid", parameters); 113 XmlRpcRequest req = new XmlRpcRequest("get_agent_by_uuid", parameters);
110 114
111 XmlRpcResponse resp = req.Send(GetUserServerURL(userId), 6000); 115 XmlRpcResponse resp = req.Send(m_commsManager.NetworkServersInfo.UserURL, 6000);
112 Hashtable respData = (Hashtable)resp.Value; 116 Hashtable respData = (Hashtable)resp.Value;
113 if (respData.Contains("error_type")) 117 if (respData.Contains("error_type"))
114 { 118 {
@@ -603,7 +607,7 @@ namespace OpenSim.Region.Communications.OGS1
603 { 607 {
604 if ((string)respData["returnString"] == "TRUE") 608 if ((string)respData["returnString"] == "TRUE")
605 { 609 {
606 610 m_log.DebugFormat("[OGS1 USER SERVICES]: Updated user appearance in {0}", GetUserServerURL(user));
607 } 611 }
608 else 612 else
609 { 613 {
@@ -622,8 +626,8 @@ namespace OpenSim.Region.Communications.OGS1
622 } 626 }
623 catch (WebException e) 627 catch (WebException e)
624 { 628 {
625 m_log.Warn("[OGS1 USER SERVICES]: Error when trying to update Avatar's appearance: " + 629 m_log.WarnFormat("[OGS1 USER SERVICES]: Error when trying to update Avatar's appearance in {0}: {1}",
626 e.Message); 630 GetUserServerURL(user), e.Message);
627 // Return Empty list (no friends) 631 // Return Empty list (no friends)
628 } 632 }
629 } 633 }