aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications/Hypergrid
diff options
context:
space:
mode:
authorDiva Canto2009-09-04 22:30:30 -0700
committerDiva Canto2009-09-04 22:30:30 -0700
commitc48ec978179ade68cf816e3134e11ddde71f8bfc (patch)
tree1e5821597bfb97a84f75789d78f67dd4c2b73fb0 /OpenSim/Region/Communications/Hypergrid
parentAdd ids to iar requests (diff)
downloadopensim-SC-c48ec978179ade68cf816e3134e11ddde71f8bfc.zip
opensim-SC-c48ec978179ade68cf816e3134e11ddde71f8bfc.tar.gz
opensim-SC-c48ec978179ade68cf816e3134e11ddde71f8bfc.tar.bz2
opensim-SC-c48ec978179ade68cf816e3134e11ddde71f8bfc.tar.xz
Fixed some long-standing issues with appearance in HG1.
Diffstat (limited to 'OpenSim/Region/Communications/Hypergrid')
-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.cs2
4 files changed, 75 insertions, 3 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..aaa1c78 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
@@ -311,7 +311,7 @@ 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 = string.Empty;
317 CachedUserInfo uinfo = m_commsManager.UserProfileCacheService.GetUserDetails(userID); 317 CachedUserInfo uinfo = m_commsManager.UserProfileCacheService.GetUserDetails(userID);